第四章:运算符
4.1 算术运算符
算术运算符用于处理数字,其中"+"还可用于字符串的拼接,让我们来看一些例子:
var a, b int = 10, 5
// 加法
var sum = a + b // 结果为 15
// 减法
var diff = a - b // 结果为 5
// 乘法
var product = a * b // 结果为 50
// 除法
var quotient = a / b // 结果为 2
// 取余
var remainder = a % b // 结果为 0
//字符串拼接
var str1 = "Hello, "
var str2 = "Go!"
result := str1 + str2//结果为Hello, world!
4.2 关系运算符
关系运算符用于比较两个值的大小关系,返回布尔值。下面让我们看一些具体的示例:
var x, y int = 5, 10
// 等于
var isEqual = x == y // 结果为 false
// 不等于
var isNotEqual = x != y // 结果为 true
// 大于
var isGreater = x > y // 结果为 false
// 小于
var isLess = x < y // 结果为 true
// 大于等于
var isGreaterOrEqual = x >= y // 结果为 false
// 小于等于
var isLessOrEqual = x <= y // 结果为 true
4.3 逻辑运算符
4.3.1逻辑与运算符
逻辑与运算符 && 用于检查两个条件是否同时为真。只有当两个条件都为真时,整个表达式才会返回真。如果任一条件为假,整个表达式将返回假。此外,逻辑与是一种短路运算符,它在第一个条件为假时就停止执行,因为无需再检查后面的条件。
var isAdult = age >= 18
var isStudent = true
// 与运算
var canVote = isAdult && !isStudent // 结果为 true,成年且不是学生才能投票
4.3.2逻辑或(||)
逻辑或运算符 || 用于检查两个条件是否至少有一个为真。只要其中一个条件为真,整个表达式就会返回真。与逻辑与类似,逻辑或也是一种短路运算符,它在第一个条件为真时就停止执行。
var hasPermission = isAdmin || isEditor // 结果为 true,管理员或编辑具有权限
4.3.3逻辑非(!)
逻辑非运算符 ! 用于反转布尔值,将真变为假,将假变为真。
var isBlocked = !isAllowed // 结果为 true,如果不允许,则被阻止
逻辑运算符在控制流程、条件语句和布尔逻辑中都非常有用。通过灵活使用这些运算符,可以创建复杂的条件和逻辑,以满足各种编程需求。记住逻辑运算符的短路特性,它可以提高程序的效率并避免不必要的计算。
4.4 位运算符
Go语言提供了位运算符,它们用于对整数的每个位进行操作。举个例子:
var a, b int = 5, 3
// 按位与
var resultAnd = a & b // 结果为 1
// 按位或
var resultOr = a | b // 结果为 7
// 按位异或
var resultXor = a ^ b // 结果为 6
// 位清零
var resultClear = a &^ b // 结果为 4
第五章:流程控制
5.1条件语句
if 语句是一种常见的条件控制结构,它允许根据条件的真假来执行不同的代码块。在 Go 语言中,if 语句的基本格式如下:
if condition {
// 如果条件为真,执行这里的代码
} else {
// 如果条件为假,执行这里的代码
}
以下是关于 if 语句的详细介绍:
5.1.1基本用法
在最简单的情况下,if 语句用于根据条件执行不同的代码块。如果条件为真,执行 if 语句块中的代码,否则执行 else 语句块中的代码。
age := 20
if age >= 18 {
fmt.Println("成年人")
} else {
fmt.Println("未成年人")
}
在上面的例子中,如果 age 大于等于 18,将输出 "成年人",否则输出 "未成年人"。
5.1.2单行 if 语句
如果 if 或 else 语句块只包含一行代码,可以将其写在一行上,不需要花括号 {}。
if age >= 18 {
fmt.Println("成年人")
} else {
fmt.Println("未成年人")
}
5.1.3嵌套 if 语句
if 语句可以嵌套,允许在一个 if 语句块内再使用另一个 if 语句。
age := 20
hasID := true
if age >= 18 {
if hasID {
fmt.Println("可以购买酒类")
} else {
fmt.Println("无法购买酒类,需要身份证")
}
} else {
fmt.Println("未成年人,不允许购买酒类")
}
在上面的例子中,首先检查年龄是否大于等于 18,如果是,则进一步检查是否有身份证。
5.1.4 if 语句的初始化语句
在 if 语句之前可以包含一个初始化语句,用于在条件判断之前执行一些操作。这在需要在 if 语句中使用的临时变量时非常有用。
if num := 10; num%2 == 0 {
fmt.Println("num 是偶数")
} else {
fmt.Println("num 是奇数")
}
在上面的例子中,num := 10 是初始化语句,它在 if 语句之前声明了一个 num 变量,并将其初始化为 10。
5.1.5多个条件判断
if 语句也可以包含多个条件判断,使用逻辑运算符来组合条件。
age := 20
hasID := true
if age >= 18 && hasID {
fmt.Println("可以购买酒类")
} else {
fmt.Println("不符合购买酒类的条件")
}
在上面的例子中,通过使用 && 逻辑与运算符,将两个条件结合在一起。
5.1.6总结
if 语句是编程中常用的控制结构之一,允许根据条件的真假来执行不同的代码块。通过嵌套 if 语句和逻辑运算符,可以处理复杂的条件逻辑。同时,初始化语句使得在 if 语句内部声明临时变量变得更加方便。了解和熟练使用 if 语句是编写 Go 程序的基本技能之一。
5.1.2 switch语句
switch语句用于多个条件的匹配,可以使用多个case分支,例如:
day := "Monday"
switch day {
case "Monday":
fmt.Println("星期一")
case "Tuesday":
fmt.Println("星期二")
default:
fmt.Println("其他")
}
5.2 循环语句
5.2.1 for循环
for循环用于重复执行一段代码,例如:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
5.2.2 循环控制语句
break:用于跳出当前循环。continue:用于跳过当前循环的剩余部分,进入下一次循环。
5.3 函数
5.3.1 声明函数
在Go语言中,使用func关键字声明函数,例如:
func add(x, y int) int {
return x + y
}
5.3.2 调用函数
调用函数时,使用函数名和参数列表,例如:
result := add(10, 5)
fmt.Println(result) // 输出 15
5.3.3 函数的返回值
函数可以返回一个或多个值,例如:
func divide(x, y float64) (float64, error) {
if y == 0 {
return 0, errors.New("除数不能为零")
}
return x / y, nil
}
5.4 总结
承接上篇,本篇文章详细介绍了Go语言的运算符、流程控制以及函数的基本用法,并提供了丰富的示例。这些知识是编写Go程序的关键,继续学习和实践将帮助你深入了解这门语言并编写更复杂的程序。不要害怕犯错,编程就是一个不断学习和改进的过程。如果这份教程对你的学习有所帮助,记得点赞支持一下!