Re: [go-nuts] Need explaination for code

2019-07-27 Thread thatipelli santhosh
Thank you for explaining that @brian Hatfield

On Sat, Jul 27, 2019, 00:02 Brian Hatfield  wrote:

> Welcome to Go!
>
> There's a couple things going on here, which you can break down into two
> overarching parts.
>
> Part 1, var/type definition:
>
> var testCases = []struct {
>  description string
>  planet  Planet
>  seconds float64
>  expectedfloat64
> }
>
> This says the following things:
>
>- Create a new variable, called testCases
>- testCases will contain a slice of (anonymous) structs ( []struct {.}
>)
>- and each of those structs will contain 4 fields: description,
>planet, seconds, expected
>
> Part 2, the instantiation/struct literal:
>
> {
>  {
>  description: "age on Earth",
>  planet:  "Earth",
>  seconds: 10,
>  expected:31.69,
>  },
>  {
>  description: "age on Mercury",
>  planet:  "Mercury",
>  seconds: 2134835688,
>  expected:280.88,
>  },
> [etc]
> }
>
> This says:
>
>- Instantiate this slice of structs right in-line (this is called a
>literal)
>- Repeated anonymous struct literals for each item in the slice
>
> The likely purpose of this code, overall, is so that later on down,
> something can iterate `testCases` and get a number of `testCase`, each with
> test expected values.
>
> You could also write this code like:
>
> type TestCase struct {
>  description string
>  planet  Planet
>  seconds float64
>  expectedfloat64
> }
>
> var testCases []TestCase
>
> testCases = append(testCases, TestCase{
>  description: "age on Uranus",
>  planet:  "Uranus",
>  seconds: 3210123456,
>  expected:1.21,
> })
>
> [.etc]
>
> with an append call for each case you want to add.
>
> The example you provided just streamlines the whole process, and takes
> advantage of slice literals, anonymous struct definitions, and implicit
> struct literals within a slice definition.
>
> Hope that helps!
> Brian
>
> On Fri, Jul 26, 2019 at 2:16 PM thatipelli santhosh <
> santhoshthatipelli...@gmail.com> wrote:
>
>> Hi ,
>>
>> I am learning Go step by step. I have go through with slices and structs
>> but this below code sample is using slices and structs both at a time.
>>
>> Can anyone please explain this piece of code? this would be more helpful
>> to me to understand this. Thank you!
>>
>> var testCases = []struct {
>>  description string
>>  planet  Planet
>>  seconds float64
>>  expectedfloat64
>> }{
>>  {
>>  description: "age on Earth",
>>  planet:  "Earth",
>>  seconds: 10,
>>  expected:31.69,
>>  },
>>  {
>>  description: "age on Mercury",
>>  planet:  "Mercury",
>>  seconds: 2134835688,
>>  expected:280.88,
>>  },
>>  {
>>  description: "age on Venus",
>>  planet:  "Venus",
>>  seconds: 189839836,
>>  expected:9.78,
>>  },
>>  {
>>  description: "age on Mars",
>>  planet:  "Mars",
>>  seconds: 2329871239,
>>  expected:39.25,
>>  },
>>  {
>>  description: "age on Jupiter",
>>  planet:  "Jupiter",
>>  seconds: 901876382,
>>  expected:2.41,
>>  },
>>  {
>>  description: "age on Saturn",
>>  planet:  "Saturn",
>>  seconds: 30,
>>  expected:3.23,
>>  },
>>  {
>>  description: "age on Uranus",
>>  planet:  "Uranus",
>>  seconds: 3210123456,
>>  expected:1.21,
>>  },
>>  {
>>  description: "age on Neptune",
>>  planet:  "Neptune",
>>  seconds: 8210123456,
>>  expected:1.58,
>>  },
>> }
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to golang-nuts+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/golang-nuts/de5ac14e-0f10-4e84-ae07-10aecd9eb11d%40googlegroups.com
>> 
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAN1Sb7xn%2B6nUSKJLK5%2BcB%3D%3DKHuS6WbFVu%3DZo6_hkqPp6cLugwg%40mail.gmail.com.


Re: [go-nuts] Need explaination for code

2019-07-26 Thread Jan Mercl
On Fri, Jul 26, 2019 at 8:15 PM thatipelli santhosh
 wrote:

> Can anyone please explain this piece of code? this would be more helpful to 
> me to understand this. Thank you!

I don't know what "explain this code" means in this case. But maybe
this can help: https://play.golang.org/p/t4yDlOwG-rv

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAA40n-WYbwC-Udv%3Df8%3D%2BkzW4pgxTnpx_uJyvk8zwrRNt%3D60pHA%40mail.gmail.com.


Re: [go-nuts] Need explaination for code

2019-07-26 Thread Brian Hatfield
Welcome to Go!

There's a couple things going on here, which you can break down into two
overarching parts.

Part 1, var/type definition:

var testCases = []struct {
 description string
 planet  Planet
 seconds float64
 expectedfloat64
}

This says the following things:

   - Create a new variable, called testCases
   - testCases will contain a slice of (anonymous) structs ( []struct {.}
   )
   - and each of those structs will contain 4 fields: description, planet,
   seconds, expected

Part 2, the instantiation/struct literal:

{
 {
 description: "age on Earth",
 planet:  "Earth",
 seconds: 10,
 expected:31.69,
 },
 {
 description: "age on Mercury",
 planet:  "Mercury",
 seconds: 2134835688,
 expected:280.88,
 },
[etc]
}

This says:

   - Instantiate this slice of structs right in-line (this is called a
   literal)
   - Repeated anonymous struct literals for each item in the slice

The likely purpose of this code, overall, is so that later on down,
something can iterate `testCases` and get a number of `testCase`, each with
test expected values.

You could also write this code like:

type TestCase struct {
 description string
 planet  Planet
 seconds float64
 expectedfloat64
}

var testCases []TestCase

testCases = append(testCases, TestCase{
 description: "age on Uranus",
 planet:  "Uranus",
 seconds: 3210123456,
 expected:1.21,
})

[.etc]

with an append call for each case you want to add.

The example you provided just streamlines the whole process, and takes
advantage of slice literals, anonymous struct definitions, and implicit
struct literals within a slice definition.

Hope that helps!
Brian

On Fri, Jul 26, 2019 at 2:16 PM thatipelli santhosh <
santhoshthatipelli...@gmail.com> wrote:

> Hi ,
>
> I am learning Go step by step. I have go through with slices and structs
> but this below code sample is using slices and structs both at a time.
>
> Can anyone please explain this piece of code? this would be more helpful
> to me to understand this. Thank you!
>
> var testCases = []struct {
>  description string
>  planet  Planet
>  seconds float64
>  expectedfloat64
> }{
>  {
>  description: "age on Earth",
>  planet:  "Earth",
>  seconds: 10,
>  expected:31.69,
>  },
>  {
>  description: "age on Mercury",
>  planet:  "Mercury",
>  seconds: 2134835688,
>  expected:280.88,
>  },
>  {
>  description: "age on Venus",
>  planet:  "Venus",
>  seconds: 189839836,
>  expected:9.78,
>  },
>  {
>  description: "age on Mars",
>  planet:  "Mars",
>  seconds: 2329871239,
>  expected:39.25,
>  },
>  {
>  description: "age on Jupiter",
>  planet:  "Jupiter",
>  seconds: 901876382,
>  expected:2.41,
>  },
>  {
>  description: "age on Saturn",
>  planet:  "Saturn",
>  seconds: 30,
>  expected:3.23,
>  },
>  {
>  description: "age on Uranus",
>  planet:  "Uranus",
>  seconds: 3210123456,
>  expected:1.21,
>  },
>  {
>  description: "age on Neptune",
>  planet:  "Neptune",
>  seconds: 8210123456,
>  expected:1.58,
>  },
> }
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/de5ac14e-0f10-4e84-ae07-10aecd9eb11d%40googlegroups.com
> 
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CANGiwgZaYALN-YQk75DoHQ-P1hSvsnz6AC_14%3DL51sPFq0WZoA%40mail.gmail.com.


[go-nuts] Need explaination for code

2019-07-26 Thread thatipelli santhosh
Hi ,

I am learning Go step by step. I have go through with slices and structs 
but this below code sample is using slices and structs both at a time.

Can anyone please explain this piece of code? this would be more helpful to 
me to understand this. Thank you!

var testCases = []struct {
 description string
 planet  Planet
 seconds float64
 expectedfloat64
}{
 {
 description: "age on Earth",
 planet:  "Earth",
 seconds: 10,
 expected:31.69,
 },
 {
 description: "age on Mercury",
 planet:  "Mercury",
 seconds: 2134835688,
 expected:280.88,
 },
 {
 description: "age on Venus",
 planet:  "Venus",
 seconds: 189839836,
 expected:9.78,
 },
 {
 description: "age on Mars",
 planet:  "Mars",
 seconds: 2329871239,
 expected:39.25,
 },
 {
 description: "age on Jupiter",
 planet:  "Jupiter",
 seconds: 901876382,
 expected:2.41,
 },
 {
 description: "age on Saturn",
 planet:  "Saturn",
 seconds: 30,
 expected:3.23,
 },
 {
 description: "age on Uranus",
 planet:  "Uranus",
 seconds: 3210123456,
 expected:1.21,
 },
 {
 description: "age on Neptune",
 planet:  "Neptune",
 seconds: 8210123456,
 expected:1.58,
 },
}


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/de5ac14e-0f10-4e84-ae07-10aecd9eb11d%40googlegroups.com.