zoukankan      html  css  js  c++  java
  • Go之指针

    
    package main
    
    import "fmt"
    // import "strings"
    func main() {
    	// 指针
    	// 区别于C/C++中的指针,Go语言中的
    	// 指针不能进行偏移和运算,是安全指针
    	// Go语言中的函数传参都是值拷贝
    	// 当我们需要修改某个变量,可以创建一个指向
    	// 该变量地址的指针变量
    
    	// Go语言中的值类型(int,float,bool,string,array,struct)
    	// 都有对应的指针类型
    	a := 10
    	b := &a
    	fmt.Println(b) //0xc000012090
    	fmt.Println(*b) //10
    
    	// new和make的区别
    	// new是一个内置函数,它的函数签名如下
    	// func new(Type) *Type
    	// new函数不太常用,使用new函数得到的是一个类型的指针
    	// 并且该指针对应的值为该类型的零值
    	c := new(int)
    	fmt.Println(*c) //0
    	// make也用于内存分配,区别于new
    	// 它只用于sloce、map以及chan的内存创建
    	// 而且它返回的类型就是折三个类型本身,而不是它们的指针类型
    	// 因为这三种类型就是引用类型,所以没必要返回它们的指针了
    	// 它的函数签名如下
    	// func make(t Type, size ...IntegerType) Type
    	// make函数无可替代,我们使用sloce、map以及chan 的时候
    	// 都需要用make进行初始化,然后才可以对它进行操作
    	x := make([]int, 4)
    	fmt.Println(x)
    
    	// 自定义类型
    	// go语言中可以通过type关键字来自定义类型
    	// 自定义类型定义了一个全新的类型,我们可以基于内置的基本类型定义
    	// 也可以通过struct定义
    	// 通过type关键词的定义,MyInt就是一中新的类型,它具有int的特性
    	type MyInt int
    	var y MyInt = 55
    	fmt.Println(y)
    
    	// 类型别名
    	type TheInt = int
    	var z TheInt = 55
    	fmt.Println(z)
    	// 我们之前见过的type就是类型别名
    	// 它们的定义是 type byte = uint8
    } 
    
  • 相关阅读:
    ASP.NET Razor
    ASP.NET Razor
    ASP.NET Razor
    ASP.NET Razor C# 和 VB 代码语法
    ASP.NET Razor 简介
    aspnet_regiis -i VS 20XX 的开发人员命令提示符
    web.config
    Java_Freemarker
    SQL SELECT INTO 语句
    SQL UNION 和 UNION ALL 操作符
  • 原文地址:https://www.cnblogs.com/cl94/p/13805961.html
Copyright © 2011-2022 走看看