Go----GoLand注意事项一

GoLand安装教程—http://c.biancheng.net/view/6124.html

注意事项一

1)使用大小写决定标识符(常量、变量、类型、接口、结构或函数)是否可以被外部包所调用;
大写字母开头----可被外部包的代码所使用(需先导入)----public
小写字母开头----对包外不可见,包内可见并可用----private
2)局部变量—大括号{}内部的变量 全局变量—函数和大括号{}外部的变量;
3)三种方式定义变量

	var a int=10//标准格式
	var b=10//自动推断类型格式
	c:=10//简短声明格式   只能用于函数体内,不能用于全局变量的声明与赋值

4)变量的交换方式

	var a int=10
	var b int=20
	//第一种:
	a=a^b
	b=b^a
	a=a^b
	//第二种:
	b,a=a,b

5)匿名变量—函数返回值并不是全部所需,匿名变量用"_"替换即可—不占命名空间,不分配内存;

	func GetData(){
		return 10,20
	}
	a,_=GetData()//返回第一个值
	_,b=GetData()//返回第二个值

6)基本数据类型

有符号整型:int8、int16(short)、int32、int64(long)、int;
无符号整型:uint8(byte)、uint16、uint32、uint64、uint;

浮点型:float32、float64
math.MaxFloat32---float32最大值(3.4*10^38)      math.SmallestNonzeroFloat32----float32最小值(1.4*10^(-45))
math.MaxFloat64---float64最大值(1.8*10^308)      math.SmallestNonzeroFloat64----float64最小值(4.9*10^(-324))

复数型:complex64(float32类型的实部和虚部)、complex128(float64类型的实部和虚部)

字符串: 双引号---字符串字面量----不能跨行     反引号---多行字符串---用于内嵌源码和内嵌数据

字符(单引号):byte---1字节---uint8的别名类型      rune----4字节----int32的别名类型
var a byte='a'
var b rune='一'

7)复合数据类型(派生数据类型):数组(array)、切片(slice)、映射(map)、函数(function)、结构体(struct)、通道(channel)、接口(interface)、指针(pointer);

8)打印格式

通用    %v---值的默认格式    %+v---类似于%v,结构体时添加字段名    %T---值的类型
			%t---布尔型(单词true or false)  
整型      %b、%o、%d、%x、%X---二、八、十、十六进制
			%c---对应的unicode码值   %8d---该整型长度8,不足前补空格   %08d---该整型长度8,不足前补0
浮点型与复数型    %b---无小数、二进制指数的科学计数法     %e==%.6e---有6位小数的科学计数法
							%E---科学计数法    %f==%.6f----有6位小数部分(等价于%F)
							%g---根据实际情况采用%e或%f       %G---根据实际情况采用%E或%F
字符串与字节数组   %s---直接输出    %q---该值对应的双引号括起来的Go语法字符串字面值(采用安全的转义)

9)常量的声明方式(布尔型、数字型–整-浮-复、字符串)

	const 标识符 [类型] =//可省略类型说明符[类型]---编译器可自动推断
	const B string="shuaige"//显示类型
	const C="meinv"//隐式类型
	const WIDTH,HEIGHT=value1,value2//多个相同类型
常量组不指定类型和初始值----与上一行非空常量值相同
package main
import "fmt"
const (
	a=10
	b
	c
)
func main()  {
	fmt.Println(a,b,c)//10 10 10
}

10)iota–特殊常量值------一个系统定义可被编译器修改的常量值
当const出现时,被重置为0,每出现一个常量,iota所代表的值会自动增加1
iota—常量组中的常量计数器

package main
import "fmt"
const (
	a=iota
	b
	c
)
func main()  {
	fmt.Println(a,b,c)//0 1 2
}

11)类型别名与类型定义

类型别名格式:type  类型别名 = 类型
定义类型格式:type  新的类型名   类型
程序性能考虑:尽可能使用:=去初始化声明一个变量(函数内部)      尽可能使用字符代替字符串
type Stringli = string//Stringli 为string的别名,二者等效---只会在代码中存在---编译完成时,不会有别名类型
type Newstring  string//Newstring形成一种新的类型,本身依然具备string的特性;

12)位运算符:比算术运算符速度快,开发高效率程序;

按位异或(^):两数对应的二进制位相异或,1 ^ 0 = 1     1 ^ 1 = 0
左移运算符(<<):就是乘以2的n次方,运算数的各二进制位全部左移若干位
右移运算符(>>):就是除以2的n次方,运算数的各二进制位全部右移若干位

13)其他运算符

&---返回变量存储地址---&a将给出变量的实际地址
*---指针变量---*a是一个指针变量
package main

import "fmt"

func main()  {
	var a int =4
	var ptr *int
	ptr=&a//ptr是地址
	fmt.Println(a)
	fmt.Println(ptr)
	fmt.Println(*ptr)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LH-Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值