Go语言入门之基础语法&基本数据类型--练气一层
2021-03-26 00:28
标签:允许 sele 单引号 union 否则 string 组类型 串操作 连接 Go 语言的基础组成有以下几个部分: 以换行的方式分割语句,如果两条语句在同一行,则需要用;分割,但不建议这样做。 由字母数字下划线组成,但必须是字母或下划线开头,这与其他大多数语言一样。 下面列举了 Go 代码中会使用到的 25 个关键字或保留字: 除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符: 布尔型的值只可以是常量 true 或者 false。一个简单的例子: 包括int、float。Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码。 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64 其中, 注意: 在使用 获取对象的长度的内建 Go1.13版本之后引入了数字字面量语法,这样便于开发者以二进制、八进制或十六进制浮点数的格式定义数字,例如: 而且还允许我们用 我们可以借助fmt函数来将一个整数以不同进制形式展示。 Go语言支持两种浮点型数: 打印浮点数时,可以使用 包括complex64和complex128 复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部和虚部为64位。 Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本。 Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示。 Go 语言的字符有以下两种: 当需要处理复合字符比如中文时,则需要用到 Go 使用了特殊的 rune 类型来处理 Unicode,让基于 Unicode 的文本处理更为方便,也可以使用 byte 型进行默认字符串处理,性能和扩展性都有照顾。 遍历字符串 输出 因为UTF8编码下一个中文汉字由3~4个字节组成,所以我们不能简单的按照字节去遍历一个包含中文的字符串,否则就会出现上面输出中第一行的结果。 字符串底层是一个byte数组,所以可以和 要修改字符串,需要先将其转换成 Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。 Go语言入门之基础语法&基本数据类型--练气一层 标签:允许 sele 单引号 union 否则 string 组类型 串操作 连接 原文地址:https://www.cnblogs.com/bingfengdev/p/13762516.htmlGo语言结构
package main
import "fmt"
/**
入口程序
*/
func main() {
//打印hello world
fmt.Println("Hello World !")
}
Go语言基础语法
行分隔符
注释
// 行注释
/**
段落注释
*/
标识符
关键字
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
print
println
real
recover
string
true
uint
uint8
uintptr
Go语言数据类型
布尔类型
var flag bool = false
数字类型
整型
uint8
就是我们熟知的byte
型,int16
对应C语言中的short
型,int64
对应C语言中的long
型。
类型
描述
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)
特殊整型
类型
描述
uint
32位操作系统上就是
uint32
,64位操作系统上就是uint64
int
32位操作系统上就是
int32
,64位操作系统上就是int64
uintptr
无符号整型,用于存放一个指针
int
和 uint
类型时,不能假定它是32位或64位的整型,而是考虑int
和uint
可能在不同平台上的差异。len()
函数返回的长度可以根据不同平台的字节长度进行变化。实际使用中,切片或 map 的元素数量等都可以用int
来表示。在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用int
和 uint
。数字字面量语法(Number literals syntax)
v := 0b00101101
, 代表二进制的 101101,相当于十进制的 45。 v := 0o377
,代表八进制的 377,相当于十进制的 255。 v := 0x1p-2
,代表十六进制的 1 除以 22,也就是 0.25。_
来分隔数字,比如说: v := 123_456
表示 v 的值等于 123456。package main
import "fmt"
func main(){
// 十进制
var a int = 10
fmt.Printf("%d \n", a) // 10
fmt.Printf("%b \n", a) // 1010 占位符%b表示二进制
// 八进制 以0开头
var b int = 077
fmt.Printf("%o \n", b) // 77
// 十六进制 以0x开头
var c int = 0xff
fmt.Printf("%x \n", c) // ff
fmt.Printf("%X \n", c) // FF
}
浮点型
float32
和float64
。这两种浮点型数据格式遵循IEEE 754
标准: float32
的浮点数的最大范围约为 3.4e38
,可以使用常量定义:math.MaxFloat32
。 float64
的浮点数的最大范围约为 1.8e308
,可以使用一个常量定义:math.MaxFloat64
。fmt
包配合动词%f
,代码如下:package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("%f\n", math.Pi)
fmt.Printf("%.2f\n", math.Pi)
}
复数类型
字符串类型string
字符串操作
字符串转义
转义符
含义
\r
回车符(返回行首)
\n
换行符(直接跳到下一行的同列位置)
\t
制表符
\‘
单引号
\"
双引号
\\
反斜杠
多行字符串
var s = `
第一行
第二行
第三行
`
字符串的常用操作
方法
介绍
len(str)
求长度
+或fmt.Sprintf
拼接字符串
strings.Split
分割
strings.contains
判断是否包含
strings.HasPrefix,strings.HasSuffix
前缀/后缀判断
strings.Index(),strings.LastIndex()
子串出现的位置
strings.Join(a[]string, sep string)
join操作
字符类型 byte、rune
uint8
类型,或者叫 byte 型,代表了ASCII码
的一个字符。rune
类型,代表一个 UTF-8字符
。rune
类型。rune
类型实际是一个int32
。package main
import "fmt"
func main() {
// 遍历字符串
s := "hello你好"
for i := 0; i
104(h) 101(e) 108(l) 108(l) 111(o) 228(?) 189(?) 160( ) 229(?) 165(¥) 189(?)
104(h) 101(e) 108(l) 108(l) 111(o) 20320(你) 22909(好)
[]byte
类型相互转换。字符串是不能修改的 ,字符串是由byte字节组成,所以字符串的长度是byte字节的长度。 rune类型用来表示utf8字符,一个rune字符由一个或多个byte组成。修改字符串
[]rune
或[]byte
,完成后再转换为string
。无论哪种转换,都会重新分配内存,并复制字节数组。类型转换
T(表达式)
派生类型
上一篇:javaweb基础(面试题)
下一篇:并查集-二项树与快速合并算法
文章标题:Go语言入门之基础语法&基本数据类型--练气一层
文章链接:http://soscw.com/index.php/essay/67998.html