Go实战(二)-变量、语句、函数、指针、关键字(下)

简介: Go实战(二)-变量、语句、函数、指针、关键字

5 函数

  • 参数 参数类型,
  • image.png
  • image.png
  • Go的函数可以返回多个值
  • image.png
  • 若参数过多,这样并不是一种清晰的写法
  • image.png
  • 建议如下最佳实践!
  • image.png

多返回值函数,只接收一个返回值

image.png

对于多返回值参数,一般可用于返回值+error

image.png

比如这样,控制台输出就很难看,因为error直接程序中断了

image.png

7.png

image.png

image.png

亦可写成匿名函数

image.png

无默认参数,有可变参数,可变参数类型其实是[] type 类型

image.png

image.png

6 指针

image.png

6.1 参数传递

image.png

image.png

image.png

image.png

image.png

image.png

当然啦,还有最简单的image.png

关键字

range

用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。

package main
import "fmt"
func main() {
    // 1. 使用range求一个slice的和
    nums := []int{2, 3, 4}
    sum := 0
    for _, num := range nums {
        sum += num
    }
    fmt.Println("sum:", sum)
    // 2. 在数组上使用range将传入index和值两个变量。
    // 上面那个例子无需使用该元素的索引,所以必须使用空白符"_"省略。而有时侯我们需要知道索引
    for i, num := range nums {
        if num == 3 {
            fmt.Println("index:", i)
        }
    }
    // 3. range也可以用在map的键值对上。
    kvs := map[string]string{"a": "apple", "b": "banana"}
    for k, v := range kvs {
        fmt.Printf("%s -> %s\n", k, v)
    }
    // 4. range也可以用来枚举Unicode字符串。第一个参数是字符的索引,第二个是字符(Unicode的值)本身。
    for i, c := range "go" {
        fmt.Println(i, c)
    }
}
目录
相关文章
|
8天前
|
存储 编译器 Go
go语言中的变量、常量、数据类型
【11月更文挑战第3天】
25 9
|
17天前
|
JSON 安全 网络协议
go语言使用内置函数和标准库
【10月更文挑战第18天】
13 3
|
24天前
|
存储 C语言 C++
如何通过指针作为函数参数来实现函数的返回多个值
在C语言中,可以通过将指针作为函数参数来实现函数返回多个值。调用函数时,传递变量的地址,函数内部通过修改指针所指向的内存来改变原变量的值,从而实现多值返回。
|
24天前
|
存储 搜索推荐 C语言
如何理解指针作为函数参数的输入和输出特性
指针作为函数参数时,可以实现输入和输出的双重功能。通过指针传递变量的地址,函数可以修改外部变量的值,实现输出;同时,指针本身也可以作为输入,传递初始值或状态。这种方式提高了函数的灵活性和效率。
|
1月前
利用指针函数
【10月更文挑战第2天】利用指针函数。
17 1
|
1月前
|
算法 搜索推荐 C语言
【C语言篇】深入理解指针4(模拟实现qsort函数)
【C语言篇】深入理解指针4(模拟实现qsort函数)
23 2
|
2月前
|
编译器 Go C++
Go to Learn Go之函数
Go to Learn Go之函数
28 0
|
2月前
|
存储 Go
Go to Learn Go之指针
Go to Learn Go之指针
27 0
|
2月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
Go
Go实战(一)-概述
Go实战(一)-概述
112 0
Go实战(一)-概述