/*
指針有兩個核心概念:
類型指針:對這個指針類型的資料進行修改,傳遞資料使用指針,無需拷貝資料。類型指針不能進行偏移和運算。
切片:由指向起始元素的原始指針,元素數量和容量組成
*/
package main
/*
import (
"fmt"
)
*/
//指針取址
/* func main() {
i := 1
s := "qax"
fmt.Printf("%p %p", &i, &s)
} */
//指針取值
/* func main() {
name := "wang tang yu"
ptr := &name
fmt.Printf("ptr type:%T\n", ptr)
fmt.Printf("ptr address: %p\n", ptr)
value := *ptr
fmt.Printf("value type: %T\n", value)
fmt.Printf("value: %v\n", value)
} */
// 指針修改值
/* func swap(a, b *int) {
t := *a
*a = *b
*b = t
}
func main() {
x, y := 1, 2
swap(&x, &y)
fmt.Println(x, y)
}
*/
//使用指針擷取指令函參數的方法
/* import (
"flag"
"fmt"
)
var mode = flag.String("mode", "add ", "process mode")
func main() {
//定義指令行參數
flag.Parse()
fmt.Println(*mode)
}
*/
//建立指針的另一種方法--new()函數
import (
"fmt"
)
func main() {
s := new(string)
*s = "nihao"
fmt.Printf("s: %v\n", *s)
}