Go语言基础入门第五章

string

什么是string

Go中的字符串是一个字节的切片,可以通过将其内容封装在""中来创建字符串,Go中的字符串是 Unicode 兼容的,并且是 UTF-8 编码。
字符串是一些字节的集合。

package main

import "fmt"

func main() {
   str := "hello world"

   println(str)

   //获取字符串的长度
   println("字符串的长度为:", len(str))

   //获取指定字节
   println("字节打印:", str[0])
   fmt.Printf("%c\n", str[0])

   //for循环 range循环,遍历数组、切片等
   for i, v := range str {
      fmt.Printf("%c", str[i])
      fmt.Printf("%c", v)
   }
}

请添加图片描述

什么是函数

  • 函数是基本的代码块,用于执行一个任务。
  • Go 语言最少有个 main()函数。
  • 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。
  • 函数声明告诉了编译器函数的名称,返回类型和参数。

函数的声明

Go语言函数的定义格式如下:

func function_name ( [param list] ) [return_types] {
	函数体
}
  • 无参无返回值函数
  • 有一个参数的函数
  • 有两个参数的函数
  • 有一个返回值的函数
  • 有多个返回值的函数

实例:

package main

func main() {
	println(add(1, 2))
	println(test1(1, "rrr"))
}

func add(a, b int) int {
	c := a + b
	return c
}

func test1(a int, str string) (int, string) {
	return a, str
}

请添加图片描述

形式参数和实际参数

请添加图片描述

可变参数

概念:一个函数的参数类型确定,但是个数不确定,就可以使用可变参数。

func funcName(arg ...int) {}
//arg ... int 告诉go这个函数接收不定数量的参数,类型全部是int

实例:

package main

func main() {
   println(sums(1, 2, 3, 4, 5))
}

func sums(nums ...int) int {
   sum := 0
   for i := range nums {
      sum = sum + nums[i]
   }
   return sum
}

注意事项:

  • 如果一个函数的参数是可变参数,同时还有其他的参数,可变参数要放在列表的最后。
  • 一个函数的参数列表中最多只能有一个可变参数。

参数传递

按照数据的存储特点来分:

  • 值类型的数据:操作的是数据本身、int 、string、bool、float64、array…
  • 引用类型的数据: 操作的是数据的地址 slice、map、chan…

defer

defer语义:推迟,延迟

在go语言中,使用defer关键字来延迟一个函数或者方法的执行。

package main

func main()  {
   print("a")
   println("b")
   defer print("c")
   println("d")
   println("e")
}

func print(s string)  {
   println(s)
}

请添加图片描述

defer函数或者方法:一个函数或者方法的执行被延迟了

  • 你可以在函数中添加多个defer语句,当函数执行到最后时,这些defer语向会按照逆序执行,最后该函数返回,特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。
  • 如果有很多调用 defer,那么 defer 是采用后进先出 (栈) 模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值