内容简介: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开发者大会:为中国开发者和消费者推出新的工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective Objective-C 2.0
Matt Galloway / 爱飞翔 / 机械工业出版社 / 2014-1 / 69.00元
《effective objective-c 2.0:编写高质量ios与os x代码的52个有效方法》是世界级c++开发大师scott meyers亲自担当顾问编辑的“effective software development series”系列丛书中的新作,amazon全五星评价。从语法、接口与api设计、内存管理、框架等7大方面总结和探讨了objective-c编程中52个鲜为人知和容易被忽......一起来看看 《Effective Objective-C 2.0》 这本书的介绍吧!
XML、JSON 在线转换
在线XML、JSON转换工具
正则表达式在线测试
正则表达式在线测试