Thank you for explaining that @brian Hatfield

On Sat, Jul 27, 2019, 00:02 Brian Hatfield <bmhatfi...@gmail.com> 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
>  expected    float64
> }
>
> 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:     1000000000,
>  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
>  expected    float64
> }
>
> 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
>>  expected    float64
>> }{
>>  {
>>  description: "age on Earth",
>>  planet:      "Earth",
>>  seconds:     1000000000,
>>  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:     3000000000,
>>  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
>> <https://groups.google.com/d/msgid/golang-nuts/de5ac14e-0f10-4e84-ae07-10aecd9eb11d%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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.

Reply via email to