共计 1311 个字符,预计需要花费 4 分钟才能阅读完成。
-
变量定义
- var x String =“abc”;
- x := 123 暗藏类型,主动判断类型
// 批量定义 var ( a string = "1" b int = 1 ) const ( a = 1 b = "abc" ) const ( s = iota //iota 计数器 常量计数器,会重置为 0,从新计数, 每隔一行加 1,如果有其余定义占行,会再累加 i k ) fmt.Println(s) //0 fmt.Println(i) //1 fmt.Println(k) //2
- 常量定义 const 不须要指定类型 const abc = 123
-
自定义类型
// 定义方法类型 type f func() // 定义接口类型 type i interface { } // 定义构造体 type people struct { Name string age int } t := people{ name:"ss" age:10 }
-
函数、办法定义
// 办法定义, 依据构造体定义 func (u people) getName() string {return u.name} // 先创立构造体,能力应用办法,可设想成 new t := people{ // 调用时,t 会传递给 u name:"ss" age:10 } t.getName() // 应用接口,须要借助构造体,先定义个类型,是接口类型,而后构造体实现了接口的办法,这个构造体就相当于接口的继承,而后应用构造体调用办法 type Retriever interface {Get(string) string } var r Retriever // Retriever 接口 r = re.Retriever{"abc"} //Retriever 构造体实现了 Retriever 接口 能够当做 Retriever 接口传入 fmt.Println(r.Get("abc"))
案例
package main import "fmt" var aa int = 1 var bb string = "函数外定义变量 包内可见" // 函数外不能应用:= var ( cc string = "应用 var 定义多个变量,只写一次 var" dd int = 1 ) func main() {fmt.Println("hello World") variable() fmt.Println(aa, bb, cc, dd) } func variable() { var a int // 先定义名称 再定义类型 例如定义一个变量个别会先想到名字 再想到类型 var s string fmt.Println(a, s) // int 的初始值是 0 string 的初始值时 "" 在 c 语言中值不固定,在 java 中 不论任何类型初始值都为 null var b, c int = 4, 5 // 能够一次定义多个变量,变量必须应用,不应用会报错 防止定义无用变量 var str = "abc" // 能够不定义类型,会本人推断 fmt.Println(b, c, str) var d, e, f = 1, "e 变量值", true // 能够同时给不同类型的变量赋值,不能多个变量定义不同的类型并赋初始值 var a int, b int 这样是不行的 g, h := true, 10 // 首次定义应用:= 推断类型,代替 var ,:= 只能在函数内应用,不能在函数外应用 fmt.Println(d, e, f, g, h) fmt.Printf("%d %q", a, s) // %q 和 %s 区别:%q 会打印出 "" 对字符串进行包裹 }
正文完