Go语言学习之旅01--变量与数据

Go语言(Golang)作为一门崇尚简洁的编程语言,主张使用20%的设计,解决80%的问题,他的全新设计思路,在如今21世纪非常值得我们去学习参考

没有隐式数据类型转换,没有构造函数或者析构函数,没有运算符重载也没有继承、泛型、异常…但它却拥有垃圾搜集、一等函数、词法作用域以及channel等等

一.数据类型

整体类型描述
布尔型布尔型的值只可以是常量 true 或者 false。例:var b bool = true
数字类型整型 int 和浮点型 float32、float64,Go 语言原生支持复数,其中位的运算采用补码
字符串类型字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本
派生类型包括:
(a) 指针类型(Pointer)
(b) 数组类型
(c) 结构化类型(struct)
(d) Channel 类型
(e) 函数类型
(f) 切片类型
(g)接口类型(interface)
(h) Map 类型

 

整数类型描述
uint8无符号 8 位整型 (0 到 255)
uint16无符号 16 位整型 (0 到 65535)
uint32无符号 32 位整型 (0 到 4294967295)
uint64无符号 64 位整型 (0 到 18446744073709551615)
int8有符号 8 位整型 (-128 到 127)
int16有符号 16 位整型 (-32768 到 32767)
int32有符号 32 位整型 (-2147483648 到 2147483647)
int64有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
浮点数&复数类型描述
float32IEEE-754 32位浮点型数
float64IEEE-754 64位浮点型数,浮点数默认类型
complex6432 位实数和虚数
complex12864 位实数和虚数,复数默认类型
其他数字类型描述
byteuint8别名,用来存放字符
rune等价int32,存放Unicode编码
uint32 或 64 位
int与 uint 一样大小
uintptr无符号整型,用于存放一个指针
package main
import (
"fmt"
"math"
)
func main()  {
	var a,b int  =3,4
	var c int
	//强制类型转换,GO语言没有 隐式类型转换
	c=int(math.Sqrt(float64(a*a+b*b)))  //强制类型 转换
	fmt.Println(c)
}

 

package main

import "fmt"

func variable(){
	//定义变量, 变量名在前, 类型在后
	var a int
	var s string
	fmt.Print(a,s)         //打印Go语言变量的初值
	fmt.Print("%d,%q\n",a,s)
}

func variableTypeDeduction(){
	//自动推断类型
	var s="abcd"
	var a,b,c  =1,true,"hello,world" //定义多个变量,即使不是同一类型
	fmt.Println(s,a,b,c)
}

func variableShorter()  {
	a,b,c:=1,true,"hello,world" //定义变量,不使用var关键字
	fmt.Println(a,b,c)
}

func variableInit()  {
	//定义变量 并 赋初值
	var a int  = 3
	var b,c int =4,5
	var s string="abc"
	fmt.Println(a,b,c,s)
}

func main()  {
variable()             //定义变量
variableTypeDeduction() //自动推断类型
variableShorter()  //自动推断类型 简写(函数外的包变量不可以简写)
variableInit()     //定义变量并 赋初值
}

变量的声明 很像 javascript ,使用var关键字

常量很简单,使用const关键字

package main
import "fmt"
func main(){
	var x int=100           //声明初始化一个变量
	var str string="hello world"
	var i,j,k int=1,2,3     //声明初始化多个变量
	fmt.Printf("%d\t %s\t %d\t %d\t %d\n",x,str,i,j,k)
     var b=true       //bool型
     fmt.Printf("%d\t %s\t",b,b)
     x2:=100    //等价于 var x int=100;
     fmt.Printf("%d\n",x2)

     const s2 string="hello world"
	const pi float32 =3.1415926
	fmt.Printf("%s\t %f\n",s2,pi)
}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wangchuang2017

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

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

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

打赏作者

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

抵扣说明:

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

余额充值