1.文件名,关键字和标识符
- 每个golang程序的源文件都是以.go为后缀结尾
- golang有25个关键字
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 - 标识符使用字母数字下划线,且必须以字母或下划线开头的字符串序列
另外golang中还预定义了35个标识符
append, bool, byte, cap, close, complex, complex64, complex12
copy, false, float32, float64, imag, int, int8, int16, int32, int64, iota
len, make, new, nil, panic, print, println, real, recover, string, true
unit, unit8
2.一个最小的golang程序结构
package main
import "fmt"
func main() {
fmt.Println("hello golang!")
}
-
package main
申明了这个文件是属于main这个主包 -
import "fmt"
导入fmt包 -
func main() {
// 函数体
}
申明了主函数main
3.常量及其定义和使用
- 概念:常量是在整个程序的生命周期中其值不发生变化的一直量
- 常量的声明:声明一个常量使用关键字const定义紧接着是常量的名字
- 定义格式如下
const identifer [type] = value
const PI = 3.14
- Note:
[type]
用来说明常量的类型,例如
const PI float64 = 3.14
const STL string = "strings"
4.变量及其声明
- 概念:在程序运行过程中会发生变化的量
- 变量的一般声明:声明一个变量使用var关键字紧接着是变量的名字
- 一般的定义格式如下
var variable_name [type]
var condition string = "if a is not b"
5.类型零值
- 概念:如果声明了一个变量并且没对这个变量进行初始化赋值,golang会对该变量的类型赋予相应的类型零值,例如
var b string
// 零值为("")空字符串
var c int
// 零值为0
...
6.简短形式声明并初始化变量
- 使用简短声明变量时,变量的类型是有系统进行推断的,例如
a := false
str := "string"
Note:(_)空白字符用于抛弃值,例如a, _, c = 1, 2, 3
,数字2会被抛弃
7.init函数
- 概念:init函数是一个在每个包完成初始化后自动执行,并且执行优先级比main函数高
func init() {//statement}
8.基本数据类型和运算符
- 布尔类型:布尔类型的的值只能是true或者false,两个类型相同的值可以使用
==
或者!=
运算符来进行比较并获得一个布尔值,例如
var vari = 10
vari == 10
vari == 5
vari != 5
9.逻辑运算符
!, &&, ||
10.算术运算符
+,-,*,/,%
11.运算符优先级
优先级 运算符
7 ^, !
6 *, /, %, <<, >>, &, &^
5 +, -, |, ^
4 ==, !=, <, <=, >=, >
3 <-
2 &&
1 ||
12.字符串
- 概念:字符串是utf-8字符的一个序列
13.strings包
- 判断字符串的前缀和后缀
HasPrefix(s, prefix) bool
判断字符串s是否是以prefix开头
HasSuffix(s, suffix) bool
判断字符串s是否是以suffix结尾
package main
import (
"ftm"
"strings"
)
func main() {
var str string = "https://www.golang.org"
fmt.Println(strings.HasPrefix(str, "https:"))
fmt.Println(strings.HasSuffix(str, ".org"))
}
14.字符串包含
-
Contains(s, substr, string) bool
判断字符串s是否包含substr
package main
import (
"fmt"
"strings"
)
func main() {
var str string = "hello golang"
fmt.Println(strings.Contains(str, "he"))
}
15.索引
-
Index(s, substr string) int
判断子字符串后字符在父字符串中出现的位置 -
LastIndex(s, substr string) int
返回字符串substr在字符串s中最后出现位置的索引 - 如果字符串
ch
是非ascii编码的字符,建议使用IndexRune函数来对字符进行定位IndexRune(s, substr string) int
package main
import (
"fmt"
"strings"
)
func main() {
var str string = "oh my god!"
fmt.Println(strings.Index(str, "o"))
fmt.Println(strings.LastIndex(str, "my"))
fmt.Println(strings.IndexRune(str, "层次"))
}
16.字符串替换和统计字符串出现的次数
-
Replace(str, old, new, n) string
n为-1时则替换所有字符串old为字符串new -
Count(s, str string) int
统计str在字符串中出现的次数
17.字符串重复
-
Repeat(s string, count int) string
将字符串s重复count次,最后返回一个新的字符串
18.修剪字符串
-
TrimSpace(s)
剔除前后空白字符 -
TrimLeft(s)
剔除左边的某个字符 -
TrimRight(s)
剔除右边的某个字符
19.分割字符串
-
Split(s, sep)
指定字符进行分割
20.拼接slice到字符串
-
Join(sl []string, sep string)
将类型为string的slice使用分隔符来拼接组成一个字符串
that's all
有疑问加站长微信联系(非本文作者)