package main
import
"fmt"
type counter int
type users map
[string
]string
type callback func
(...
string
)//後面可以跟任意型別
func
main()
}list
("a"
,"b"
,"c"
)}
結構體定義使用 struct 標識,需要指定其包含的屬性(名和型別),在定義結構體時可以為 結構體指定結構體名(命名結構體),用於後續宣告結構體變數使用
package main
import
("fmt"
"time"
)//結構體的零值並不是nil 而是所有子元素的零值 組成的
type users struct
func
main()
fmt.
printf
("%#v\n"
, user2)
//零值初始化
var user3 users = users
fmt.
printf
("%#v\n"
, user3)
//用指定屬性名 賦值 可以省略一部分值也可以 更換賦值順序
//如果使用這種方法定義切記最後乙個也需要加逗號 不然會報錯
var user4 users = users
fmt.
printf
("%#v\n"
, user4)
//定義乙個結構體的指標型別 定義不初始化 是nil
var pointer1 *users
fmt.
printf
("%t\n"
, pointer1)
fmt.
printf
("%#v\n"
, pointer1)
//初始化值 定義乙個中間變數獲取它的指標進行賦值
var pointer2 *users =
&user2
fmt.
printf
("%t\n"
, pointer2)
fmt.
printf
("%#v\n"
, pointer2)
//初始化零值 是返回所有元素的零值
var pointer3 *users =
&users
fmt.
printf
("%t\n"
, pointer3)
fmt.
printf
("%#v\n"
, pointer3)
//new建立乙個型別的指標型別
var pointer4 *users =
new(users)
fmt.
printf
("%t\n"
, pointer4)
fmt.
printf
("%#v\n"
, pointer4)
fmt.
println
(pointer4.id)
fmt.
println((
*pointer4)
.id)
//new是獲取乙個指標 map根slice 對映和切片一般用make 引用型別
var aaa *
int=
new(
int)
fmt.
printf
("%t\n"
, aaa)
fmt.
printf
("%#v\n"
, aaa)
}
package main
import
("fmt"
)type user struct
func
main()
fmt.
println
(user.name, user.id, user.tel)
user.tel =
1111111
fmt.
println
(user.name, user.id, user.tel)
user2 :=
&user
fmt.
println
(*user2)
//2種修改方法都可以,直接拿指標. 他背後也是解引用 然後修改
(*user2)
.tel =
12 user2.id =
6 fmt.
println
(*user2)
}
在定義變數時將型別指定為結構體的結構,此時叫匿名結構體。匿名結構體常用於初始化一
次結構體變數的場景
package main
import
"fmt"
func
main()
fmt.
printf
("%t\n"
, user)
fmt.
printf
("%#v\n"
, user)
user.id =
222 fmt.
printf
("%#v\n"
, user)
user2 :=
struct
//這裡也可以使用命名 ***:x
fmt.
printf
("%#v\n"
, user2)
}
結構體基礎
什麼是結構體?簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而結構...
結構體 基礎
一 結構是什麼?結構體是一種可以儲存多個資料的集合,像陣列一樣,你可以把多個資料儲存到乙個變數裡,但與陣列不同的是,結構體中的成員 和陣列元素一樣,在結構體中我們稱之為成員 可以是不同型別的。結構體和陣列比較 1 陣列中所有元素的型別相同,但結構體允許不同 2 陣列通過 陣列名 下標 或者指標來訪問...
結構體基礎
結構體,結合程式看好多了。程式直接網上ctlr c來的 還有 和 的區別 include include 結構體 int main student struct student pstruct pstruct student 指向student結構體變數 printf the sudent s in...