go语言速成大法(2)

1.条件语句

  • 主要循环:for if swich select

  • select语句类似switch,但select会随机执行一个可运行的case,如果没有case可运行,他将阻塞,直到有case可运行。

  • go没有三目运算,不支持形式条件判断
    for

  • for是go中唯一可用的循环,go没有while或do while

for init; condition; post {
}
//初始化, 条件, 发送
//init: 赋值表达式
//condition 关系表达式或逻辑表达式,循环控制条件
//post 赋值表达式,给控制变量增量或减量

注:循环初始化后,若条件为真,则执行内部主体{}。后执行post语句。
post语句将在循环的每次迭代后执行。
post语句执行后,条件会被重新检查,为真,则继续执行。

//用for循环打印1-10
package main

import (
	"fmt"
)

func main() {
	for i := 1; i <= 10; i++{
		fmt.Printf("%d", i)
	}
}
//小于10的时候计算sum值相加
package main

import (
	"fmt"
)

func main() {
	for i := 1; i < 10; i++{
		fmt.Printf("%d", i)
	}
}

for each range循环

// 声明主函数
package main

// 引入 fmt 包
import (
	"fmt"
)

// 主函数
func main() {
	// 声明字符串数组,包含两个元素
	strings := []string{"google", "runoob"}
	// 使用 range 迭代数组,输出每个元素的下标和值
	for i, s := range strings{
		fmt.Println(i, s)
	}
	// 声明整型数组,包含四个元素
	numbers := [6]int{1, 2, 3, 5}
	// 使用 range 迭代数组,输出每个元素的下标和值
	for i, x := range numbers{
		fmt.Printf("第%d位x的值 = %d\n", i, x)
	}
} 

for循环的range格式可以省略key和value

package main

// 导入fmt包,该包提供了格式化输入输出以及打印等功能

import (
	"fmt"
)

// main函数是程序的入口函数,程序在运行时将首先执行这个函数

func main() {

    // 创建一个map类型的变量map1
    // map[int]float32表示这个map的key是int型,value是float32型
	map1 := make(map[int]float32)

	// 向map中添加key-value对
	map1[1] = 1.0
	map1[2] = 2.0
	map1[3] = 3.0
	map1[4] = 4.0

	// 使用for-range循环遍历map1中的数据
	for key, value := range map1{
		fmt.Printf("key is: %d\n--value is: %f\n", key, value)
	}

	// 使用for-range循环遍历map1中的key值
	for key := range map1 {
		fmt.Printf("key is : %d\n", key)
	}

	// 使用for-range循环遍历map1中的value值
	for _, value := range map1 {
		fmt.Printf("value is %f\n", value)
	}
}


  • break,continue同c的语法一样
  • 在Go的哲学里面,避免使用else
// package main表示这个文件所处的包为main,main包是Go程序的入口函数所在的包名

package main

// 导入fmt包,该包提供了格式化输入输出以及打印等功能

import (
	"fmt"
)

// main函数是程序的入口函数,程序在运行时将首先执行这个函数

func main() {
	num := 11;
	if num%2 == 0 {
		fmt.Println(num, "is even")
		return
	}
	fmt.Println(num, "is odd")
}
  • switch 计算表达式并将其与可能匹配的列表进行比较,并执行相应代码
  • 可被认为是替换复杂if else从句的惯用方式
func main() {
	age := 7

	switch age{
	case 5:
		fmt.Println("the age is 5")
	case 7:
		fmt.Println("the age is 7")
	default:
		fmt.Println("the age is unknow")
	}
}

函数

func name(参数列表) (返回值){
}

  • 参数和返回值为可选项
func plus(a, b int) (res int){
	return a + b
}
func main() {
	a, b := 90, 6
	sumAll := plus(a, b)
	fmt.Println("sum", sumAll)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿水水哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值