在Go语言中,不能直接将 int 类型的变量与 float 类型的变量相加。 必须先将其中一个变量转换为与另一个变量相同的类型。
例如:
package main
import "fmt"
func main() {
var i int = 10
var f float64 = 3.14
// 错误示例:直接相加
// sum := i + f // invalid operation: i + f (mismatched types int and float64)
// 正确示例:先将 int 转换为 float64
sum := float64(i) + f
fmt.Println(sum) // 输出: 13.14
}
在这个例子中,我们首先将整型变量 i 转换为 float64 类型,然后再与浮点型变量 f 相加。 float64(i) 是一个类型转换表达式,它将 i 的值转换为 float64 类型。
package main
import "fmt"
func main() {
fmt.Println("First statement")
fmt.Println("Second statement")
// 输出:
// First statement
// Second statement
}
控制流语句: 控制流语句用于改变程序的执行顺序。 常见的控制流语句包括:
if 语句: 根据条件执行不同的代码块。
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x is greater than 5")
}
}
for 循环: 重复执行代码块。
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
switch 语句: 根据不同的条件执行不同的代码块。
package main
import "fmt"
func main() {
x := 2
switch x {
case 1:
fmt.Println("x is 1")
case 2:
fmt.Println("x is 2")
default:
fmt.Println("x is something else")
}
}
goto 语句: 跳转到程序中的另一个标签。 (应谨慎使用,因为它可能导致代码难以理解和维护)
package main
import "fmt"
func main() {
fmt.Println("Before goto")
goto myLabel
fmt.Println("This will not be printed")
myLabel:
fmt.Println("After goto")
}
return 语句: 结束函数的执行,并返回一个值(如果函数有返回值)。
package main
import "fmt"
func add(x, y int) int {
return x + y
}
func main() {
result := add(3, 5)
fmt.Println(result) // 输出: 8
}
package main
import "fmt"
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
panic("Something went wrong!")
fmt.Println("This will not be printed")
}