本文已参与「新人创作礼」活动,一起开启掘金创作之路。
go语言的结构体
package main
import "fmt"
type Books struct {
title string
author string
subject string
book_id int
}
func main() {
fmt.Println(Books{"Go", "Tom", "Go语言教学", 12345})
fmt.Println(Books{title: "C语言", author: "Jerry", subject: "C语言入门", book_id: 12123})
fmt.Println(Books{title: "C++", author: "哇咔咔"})
var book Books
book.title = "Java"
book.author = "snoobe"
book.subject = "Java面试宝典"
book.book_id = 10086
fmt.Println(book.title, book.author, book.subject, book.book_id)
}
go语言的切片
package main
import "fmt"
func printSlice(x []int) {
fmt.Printf("len = %d cap = %d slice = %v\n", len(x), cap(x), x)
}
func main() {
var num = make([]int, 3, 5)
printSlice(num)
var slice1 []int = make([]int, 3)
printSlice(slice1)
var slice2 []int
printSlice(slice2)
if (slice2 == nil) {
fmt.Printf("切片是空的")
}
slice3 := []int{0, 1, 2, 3, 4, 5, 6, 7, 8}
printSlice(slice3)
fmt.Println("slice3 == ", slice3)
fmt.Println("slice3[1 : 4] == ", slice3[1:4])
fmt.Println("slice3[: 3] == ", slice3[:3])
fmt.Println("slice3[4 :] == ", slice3[4:])
slice4 := make([]int, 0, 5)
printSlice(slice4)
slice5 := slice3[:2]
printSlice(slice5)
slice6 := slice3[2:5]
printSlice(slice6)
var numbers []int
printSlice(numbers)
numbers = append(numbers, 0)
printSlice(numbers)
numbers = append(numbers, 1)
printSlice(numbers)
numbers = append(numbers, 2, 3, 4)
printSlice(numbers)
numbers1 := make([]int, len(numbers), (cap(numbers))*2)
copy(numbers1, numbers)
printSlice(numbers1)
}
go语言的范围
package main
import (
"fmt"
)
func main() {
var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}
for i, v := range pow {
fmt.Printf("2**%d = %d\n", i, v)
}
map1 := make(map[int]float32)
map1[1] = 1.0
map1[2] = 2.0
map1[3] = 3.0
map1[4] = 4.0
for key, value := range map1 {
fmt.Printf("key:%d value:%f\n", key, value)
}
for key := range map1 {
fmt.Printf("key : %d\n", key)
}
for _, value := range map1 {
fmt.Printf("value is %f\n", value)
}
nums := []int{2, 3, 4}
sum := 0
for _, num := range nums {
sum += num
}
fmt.Println("sum :", sum)
for i, num := range nums {
if num == 4 {
fmt.Println("index:", i)
}
}
kvs := map[string]string{"a": "apple", "b": "banana"}
for k, v := range kvs {
fmt.Printf("%s->%s\n", k, v)
}
for i, c := range "abc" {
fmt.Println(i, c)
}
}