9.3 Go语言入门(变量声明和函数调用)

目录

Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。

下面是 Go 语言的基础语法讲解和代码示例。


上一篇:一、Go语言入门(包和导入)


二、变量声明和函数调用

在 Go 语言中,变量声明和函数定义是基础语法的重要部分。下面将详细讲解变量声明和函数定义,并提供代码示例。

1. 变量声明

1.1 使用 var 关键字声明

使用 var 关键字可以显式声明变量,并指定类型。也可以在声明时进行初始化。

package main

import "fmt"

func main() {
    // 声明一个字符串变量并初始化
    var name string = "Alice"
    fmt.Println(name)

    // 声明一个整型变量,未初始化时会使用零值
    var age int
    fmt.Println(age) // 默认值 0

    // 同时声明多个变量
    var width, height int = 100, 200
    fmt.Println(width, height)

    // 类型推断
    var country = "USA"
    fmt.Println(country)

    // 声明布尔变量
    var isActive bool = true
    fmt.Println(isActive)
}

1.2 简短声明

使用 := 进行简短声明,类型由右值推断。这种方法只能在函数内部使用。

package main

import "fmt"

func main() {
    // 简短声明变量
    name := "Bob"
    age := 30
    fmt.Println(name, age)

    // 同时声明多个变量
    x, y := 10, 20
    fmt.Println(x, y)

    // 声明布尔变量
    isActive := false
    fmt.Println(isActive)
}

1.3 零值

未初始化的变量会被赋予默认的零值:

  1. 数字类型(包括 int, float64):0
  2. 布尔类型:false
  3. 字符串类型:“”(空字符串)
  4. 指针、切片、映射、通道、函数和接口:nil
package main

import "fmt"

func main() {
    var a int
    var b float64
    var c bool
    var d string
    var e []int

    fmt.Println(a) // 0
    fmt.Println(b) // 0
    fmt.Println(c) // false
    fmt.Println(d) // ""
    fmt.Println(e) // []
}

1.4 常量

使用 const 关键字声明常量,常量在编译时确定,并且不可修改。

package main

import "fmt"

const Pi = 3.14

func main() {
    const Greeting = "Hello, World!"
    fmt.Println(Pi)
    fmt.Println(Greeting)
}

2. 函数调用

2.1 函数定义

Go 中的函数定义包括函数名、参数列表、返回值列表和函数体。

package main

import "fmt"

// 定义一个函数,接受两个 int 参数,返回它们的和
func add(x int, y int) int {
    return x + y
}

func main() {
    sum := add(3, 4)
    fmt.Println("Sum:", sum)
}

2.2 多个返回值

Go 的函数可以返回多个值。

package main

import "fmt"

// 交换两个字符串
func swap(a, b string) (string, string) {
    return b, a
}

func main() {
    x, y := swap("hello", "world")
    fmt.Println(x, y) // 输出:world hello
}

2.3 命名返回值

返回值可以在函数定义中命名,命名返回值在函数体中被初始化为对应类型的零值。return 语句可以返回这些值。

package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return // 省略返回变量名,返回 x, y
}

func main() {
    fmt.Println(split(17)) // 输出:7 10
}

2.4 可变参数

使用 表示可变参数。

package main

import "fmt"

func sum(numbers ...int) int {
    total := 0
    for _, num := range numbers {
        total += num
    }
    return total
}

func main() {
    fmt.Println(sum(1, 2, 3))       // 输出:6
    fmt.Println(sum(4, 5, 6, 7, 8)) // 输出:30
}

2.5 匿名函数和闭包

匿名函数和闭包在 Go 中也很常见。

package main

import "fmt"

func main() {
    // 匿名函数
    add := func(x, y int) int {
        return x + y
    }
    fmt.Println(add(3, 4)) // 输出:7

    // 闭包
    counter := func() func() int {
        i := 0
        return func() int {
            i++
            return i
        }
    }()
    
    fmt.Println(counter()) // 输出:1
    fmt.Println(counter()) // 输出:2
    fmt.Println(counter()) // 输出:3
}

通过理解变量声明和函数定义,可以掌握 Go 语言的基础语法,并有效编写和组织代码。


下一篇:三、Go语言入门(运算符)


在这里插入图片描述

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ibun.song

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

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

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

打赏作者

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

抵扣说明:

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

余额充值