zoukankan      html  css  js  c++  java
  • 指针+[][]T 类型

    指针示例

    package main
    
    import (
    	"fmt"
    	"reflect"
    )
    func main() {
    	s := []int{0, 1, 2, 3}
    	fmt.Println(s)
    	fmt.Println(&s[2])
    	p := &s[2] // *int, 获取底层数组元素指针。
    	fmt.Println(reflect.TypeOf(p))  //打印p的类型
    	fmt.Println(*p) //指针取值
    	*p += 100
    
    	fmt.Println(s)
    }
    
    输出
    [0 1 2 3]
    0xc0000140d0
    *int
    2
    [0 1 102 3]
    

    [][]T类型

    解析: [][]T,是指元素类型为 []T 。

    package main
    
    import "fmt"
    
    func main() {
    	data := [][]int{
    		[]int{1, 2, 3},
    		[]int{100, 200},
    		[]int{11, 22, 33, 44},
    	}
    	fmt.Println(data)
    }
    
    输出
    [[1 2 3] [100 200] [11 22 33 44]]
    

    channel

    package main
    
    import (
    	"fmt"
    )
    
    type Request struct {
    	data []int
    	ret  chan int
    }
    
    func NewRequest(data ...int) *Request {
    	fmt.Printf("我是data: %v
    ", data)
    
    	return &Request{data, make(chan int, 1)}
    }
    
    func Process(req *Request) {
    	x := 0
    	fmt.Println("我就是我")
    	fmt.Println("不一样的烟火")
    	for _, i := range (*req).data {
    		fmt.Println(i)
    		x += i
    	}
    
    	req.ret <- x
    	// 原本应该是如下的格式
    	// x := 0
    	// fmt.Println("我就是我")
    	// fmt.Println(*req)
    	// fmt.Println("不一样的烟火")
    	// for _, i := range (*req).data {  // 应该是*req  因为req是指针,而要取出指针所指向的内容应该在前加* 也即是(*req) 而这里为什么
    	// req.data也可以直接出来正确的结果,是因为go内部帮我们进行了转化,但是容易给初学者造成一些困惑
    	// 	fmt.Println(i)
    	// 	x += i
    	// }
    
    	// req.ret <- x
    }
    
    func main() {
    	req := NewRequest(10, 20, 30)
    	Process(req) // req is a ptr  这个指针指向的是一个地址&{[10 20 30] 0xc000044070}
    	fmt.Println("
    =========
    ")
    	fmt.Println(<-req.ret)
    	fmt.Println(req.data)
    }
    
    输出
    我是data: [10 20 30]
    我就是我
    不一样的烟火
    10
    20
    30
    
    =========
    
    60
    [10 20 30]
    

    unsafe.Pointer

    转自: https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/85241470

  • 相关阅读:
    iOS_UIImage的方向(imageOrientation)
    iOS-LaunchImage启动页
    iOS_UIImage_毛玻璃效果
    iOS_常用C语言函数
    iOS_UIImage_Gif的合成
    iOS_UIImage_Gif的分解
    iOS_UIImge_Gif的展示
    iOS_UIImage_jpg<-->png转换
    Mysql学习第三天
    Mysql学习第二天
  • 原文地址:https://www.cnblogs.com/zunwen/p/12670486.html
Copyright © 2011-2022 走看看