30日の行く:日2と3
14495 ワード
どうやって
これは、日2と3のための私のgolang学習のための私のログ更新です.私は実際に何かを構築を開始するかゆみをしてきた.私はかなりその点に近づいている.しかし、その前に、私は機能、方法と構造を経験したいです.それが完了したら、私はいくつかの簡単なおもちゃのアプリケーションを構築すると少しの深さを開始します.
2日目
私は、この日にかなり少ししました.
データ構造
アレイ
var array [40]int
// Declare and initialize
array2 := [5]int{1, 3, 4, 5, 6}
// Access an index in the array
fmt.Println(array[20])
// add something to an index in the array
array[10] = 300
// get the size of the array
fmt.Println(len(array))
var twoD [4][9]int
for i := 0; i < 4; i++ {
for j := 0; j < 9; j++ {
twoD[i][j] = i +
}
}
スライス
make
// Create a slice pass the type and initial size to make
sl := make([]string, 3)
// Declaring and initializing a slice
t := []string{"ab", "bc", "cd"}
// Access an item in a slice
fmt.Println(sl[2])
// set an index in a slice
sl[1] = "Hello"
append
. append関数はスライスとスライスを加算し、新しいスライスを返しますsl = append(sl, "new")
copy
機能// Create a new slice with the length of the slice you want to copy
c := make([]string, len(sl))
// copies sl into c
copy(c, sl)
// creates a nes slice from index 1 to 2
newSlice := sl[1:3]
// creates slice from index 0 to 3 (excluding 4)
newSlice = sl[:4]
// slice from index 2 to the last one
newSlice = sl[2:]
twoD := make([][]int, 3)
for i := 0; i < 3; i++ {
innerLen := i + 1
twoD[i] = make([]int, innerLen)
for j := 0; j < innerLen; j++ {
twoD[i][j] = i + j
}
}
// result = [[0] [1 2] [2 3 4]]
マップ
make
空マップを作成するにはm := make(map[string]int)
// declare and initialize a map
m2 := map[string]int{"foo": 4, "bar": 40}
// set key/value pairs
m["one"] = 2
m["two"] = 3
// get a value with a key
v := m["one"]
// get number of key/value pairs
fmt.Println(len(m))
// To delete a key value pair use builtin function
delete(m, "two")
value, prs := map[key]
. もしキーが地図にあるなら、PRSはtrueで、それがそうでないならば、false_, prs := m["two"]
_
は値が不要な場合に使用されます.goが宣言されたすべての変数を使用する必要があるため、これが必要です.範囲
// array, slices
for index, value := range array {
fmt.Println(value)
}
//map
for key, value := range exMap {
fmt.Printf("%s -> %s\n", key, value)
}
// iterate over map keys only
for key := range exMap {
fmt.Println(key)
}
// iterate over strings
for index, ru := range "Golang" {
fmt.Println(ru)
}
3日目
今日はあまりうまくいかなかったけど、おもしろいことがあった.
関数
// function structure
// function name(arguments) return type {}
func sayHello(name string) string {
return "Hello " + name
}
// call the function sayHello("Kacha")
// function with multiple return values
func names() (string, string) {
return "Scott", "Ramona"
}
// variadic function
func add(nums ...int) {
total := 0
for _, num := range nums {
total += num
}
return total
}
...
私は毎日試してみてブログをしたいが、それは可能性がない可能性がありますので、私は少なくとも2、3日ごとに私の進歩をブログします.
Reference
この問題について(30日の行く:日2と3), 我々は、より多くの情報をここで見つけました https://dev.to/kmukabe/30-days-of-go-day-2-and-3-h5mテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol