内容简介:PHP 是一门弱类型的语言,所以 PHP 开发者的我们刚刚接触强类型的语言是有点蛋疼的。 在写普通程序的时候,弱类型挺方便的。但是在设计金钱相关的程序,强类型语言往往更安全。今天我们就来学习一下 Golang 的基本结构、基本数据类型。 每一门语言都有其关键字和预定义标识符。Golang 语言也不例外。Go 语言有25 个关键字或保留字,有 36 个预定义标识符。要记熟这些关键字和标识符。
PHP 是一门弱类型的语言,所以 PHP 开发者的我们刚刚接触强类型的语言是有点蛋疼的。 在写普通程序的时候,弱类型挺方便的。但是在设计金钱相关的程序,强类型语言往往更安全。
今天我们就来学习一下 Golang 的基本结构、基本数据类型。 每一门语言都有其关键字和预定义标识符。Golang 语言也不例外。
Go 语言有25 个关键字或保留字,有 36 个预定义标识符。要记熟这些关键字和标识符。
关键字或保留字
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
预定义标识符
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
常量、变量
常量
Go 语言中的的常量定是使用 const
关键字
常量要求在编译时可以确定的值。所以常量定义不允许声明一个变量的值。
const Pi = 3.14159 //正确 const abc = getAbc() //错误
多个变量可以使用括号一下定义多个
const ( a = 100 b = 200 c = 300 )
变量
变量定义使用 var
关键字
var a = 1000;
定义变量的时候需要指定变量的类型。 如果不指定则要求给变量赋予一个默认值,指定默认值后,又 Go 语言自动推导类型
var abc = 200 var str String
同时定义多个变量,同样是使用括号的形式
var ( str string num int m map[string]string )
简短形式
简短形式的变量定时是使用 :=
的形式来定义。
b := 2000
相同类型的多个变量可以声明在同一行,如:
var a, b, c int
也可以在同一行赋值
a, b, c = 1, 2, "test"
init 函数
变量的初始化除了可以在全局声明中初始化,也可以在 init 函数中初始化。 init
是一种很特殊的函数,在每个包完成初始化后自动执行,无法手动调用,并且执行优先级比 main 函数高。
package main import "fmt" var Pi float64 func init() { Pi = 3.14159 fmt.Println(Pi) }
数据类型
布尔类型 bool
var a = 10 > 9 // true !a // false
数字类型,数字类型还区分整数类型,浮点数类型,无符号整数类型。
整数:
- int8(-128 -> 127)
- int16(-32768 -> 32767)
- int32(-2,147,483,648 -> 2,147,483,647)
- int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
浮点型(IEEE-754 标准):
- float32(+- 1e-45 -> +- 3.4 * 1e38)
- float64(+- 5 * 1e-324 -> 107 * 1e308)
无符号整数:
- uint8(0 -> 255)
- uint16(0 -> 65,535)
- uint32(0 -> 4,294,967,295)
- uint64(0 -> 18,446,744,073,709,551,615)
整数类型不支持隐式转换,只能手动进行显式转换
var a int16 = 34 var b int32 b = a + a //这个是错误的形式,会报错:./test.go:7:4: cannot use a + a (type int16) as type int32 in assignment
显式转换后再去计算就支持了
var a int16 = 34 var b int32 b = int32(a) + int32(a) print(b) //68
复数类型,复数类型有 complex64
(32 位实数和虚数), complex128
(64 位实数和虚数)
var b complex64 = complex(5,6) fmt.Println(b)
运行结果: (5+6i)
位运算,位运算有 按位与 &
,按位或 |
,按位异或 ^
运算符与优先级
运算符优先级从高到底。
优先级 运算符 7 ^ ! 6 * / % << >> & &^ 5 + - | ^ 4 == != < <= >= > 3 <- 2 && 1 ||
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 李安:从结构工程师到ruby程序员 - Mixin network开发者访谈系列 第一期
- 图灵奖得主论体系结构创新,自动构建知识图谱,打造新一代Kaldi,尽在2020 WAIC·开发者日
- 让开发者专注于应用开发,OpenCenter 3.0 开发者预览版发布
- 让开发者专注于应用开发,OpenCenter 3.0 开发者预览版发布
- GitHub 推出开发者赚钱新利器,100% 全给开发者!
- Google开发者大会:为中国开发者和消费者推出新的工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming in Haskell
Graham Hutton / Cambridge University Press / 2007-1-18 / GBP 34.99
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduc......一起来看看 《Programming in Haskell》 这本书的介绍吧!