slice

布尔型:t
  整 型:d
  浮点型:g
  复数型:g
  字符串:s
  通 道:p
  指 针:p

需要说明,slice 并不是数组或数组指针。它通过内部指针和相关属性引 用数组片段,以 实现变长方案


使 make 动态创建 slice,避免了数组必须用 常量做 长度的 麻烦。还可 用指针直接访问 底层数组,退化成普通数组操作。

s := []int{0, 1, 2, 3}

p := &s[2] // *int, 获取底层数组元素指针。
**p += 100
fmt.Println(s)
输出
[0 1 102 3]

MAP

myMap = make(map[string] PersonInfo)    //创建  string 键类型  PersonInfo 值类型

package main

import "fmt"

type PersonInfo struct {
    ID      string
    Name    string
    Address string
}

func main() {
    var personDB map[string]PersonInfo
    personDB = make(map[string]PersonInfo)

    personDB["12345"] = PersonInfo{"12345", "Tom", "Room 203,..."}
    personDB["1"] = PersonInfo{"1", "Jack", "Room 101,..."}
    person, ok := personDB["12345"]
    if ok {
        fmt.Println("Found person", person.Name, "with ID 1234.")
    } else {
        fmt.Println("Did not find person with ID 1234.")
    }
}

switch

package main

import "fmt"



func main() {
    var Num int = 1
    
    switch {
    case 0 <= Num && Num <= 3:
        fmt.Printf("0-3")
    case 4 <= Num && Num <= 6:
        fmt.Printf("4-6")
    case 7 <= Num && Num <= 9:
        fmt.Printf("7-9")
    }

}
package main

import "fmt"

func main() {
    var i int = 1
    switch i {
    case 0:
        fmt.Printf("0")
    case 1:
        fmt.Printf("1")
    case 2:
        fallthrough
    case 3:
        fmt.Printf("3")
    case 4, 5, 6:
        fmt.Printf("4, 5, 6")
    default:
        fmt.Printf("Default")
    }

}

循环语句

跳转语句

函数不定参数

package main

import "fmt"

func main() {
    myfunc(1, 2, 3, 4, 5)
}
func myfunc(args ...int) {
    for _, arg := range args {
        fmt.Println(arg)
    }
}
package main

import "fmt"

func main() {
    var v1 int = 1
    var v2 int64 = 234
    var v3 string = "hello"
    var v4 float32 = 1.234
    MyPrintf(v1, v2, v3, v4)
}
func MyPrintf(args ...interface{}) {
    for _, arg := range args {
        switch arg.(type) {
        case int:

            fmt.Println(arg, "is an int value.")
        case string:
            fmt.Println(arg, "is a string value.")
        case int64:
            fmt.Println(arg, "is an int64 value.")
        default:
            fmt.Println(arg, "is an unknown type.")
        }
    }
}

package main

import (
    "fmt"
)

type User struct {
    id   int
    name string
}
type Manager struct {
    User
    title string
}

func main() {
    m := Manager{User{1, "Tom"}, "Administrator"}
    var u User = m.User
    fmt.Println(m, u)
}


//输出 :   {{1 Tom} Administrator} {1 Tom}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,495评论 3 44
  • 其本身并不是数组,它指向底层的数组作为变长数组的替代方案,可以关联底层数组的局部或全部为引用类型可以直接创建或从底...
    haokeed阅读 247评论 0 0
  • 切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法是由动态数组概念而来,为了开...
    一缕殇流化隐半边冰霜阅读 11,317评论 21 55
  • Slice 语言定义 在这里,我们提供Slice语言。 Slice(Specification Language ...
    李大烨阅读 5,140评论 0 3
  • 时刻保持杯子里的水被倒出又被盛满的感觉。——大栗致自己 最近有本新书《屏幕上的聪明决策》作者是行为经济学领域的领军...
    有杕之杜阅读 668评论 1 3