如何在Go

时间:2016-12-28 21:14:35

标签: go slice

我是Go的新手,我有两个问题:

1假设我们使用C#编写简单的循环:

static void Main(string[] args)
    {
        List<int> list = new List<int>();
        for (int i = 1; i < 10000; i++)
        {
            if (i % 5 == 0 && i % 3 == 0)
            {
                list.Add(i);
            }
        }
        foreach (int prime in list)
        {
            System.Console.WriteLine(prime);
        }
        Console.ReadKey();
    }

如果我想在Go中做同样的事情,我将不得不使用切片。但是怎么做呢?

  1. 更经常使用哪种变量声明表单: 简短形式(s:= 3) 要么 long(var s int = 3)?

3 个答案:

答案 0 :(得分:1)

1)创建一个切片:

list := make([]int, 0)

附加到:

的切片
list = append(list, i)

2)我认为你的第二个问题没有单一答案。这取决于变量的使用方式和位置。

答案 1 :(得分:1)

在Go数组中有它们的位置,但是它们有点不灵活,所以在Go代码中你不会经常看到它们。然而,切片无处不在。它们以阵列为基础,提供强大的动力和便利。

切片的长度不固定。它很灵活。

您可以声明一个空切片,如下所示

list := make([]int, 0)
list := []int{}
var list []int

以下是如何在go

中使用上述功能
package main

import (
    "fmt"
)


func main() {
        var list []int
        for i:=0;i<10000;i++ {
            if i %5 == 0 && i % 3 == 0 {
                list = append(list, i)
            }
        } 
        for _, val := range list {
            fmt.Println(val)
        }
}

以下是播放链接play

答案 2 :(得分:0)

2) 我用&#34;:=&#34;因为我想与另一个变量获得相同的类型,并使用其他 喜欢     var foo int = 3 //我想要一个int变量     bar:= foo //我想要与foo相同的类型