资讯专栏INFORMATION COLUMN

Go 语言函数

hover_lew / 2663人阅读

摘要:语言函数定义格式如下函数体参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。返回类型,函数返回一列值。

1.Go 语言函数定义格式如下:
func function_name( [parameter list] ) [return_types] {
   函数体
}

parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。
return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 return_types 不是必须的。
函数体:函数定义的代码集合。

2.函数返回多个值:
package main

import "fmt"

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("Mahesh", "Kumar")
   fmt.Println(a, b)
}

//结果为:Kumar Mahesh
3.杨辉三角形:
package main

import "fmt"

//行数
const LINES int = 10

 func ShowYangHuiTriangle() {
    nums := []int{}
    for i := 0; i < LINES; i++ {
        //补空白
        for j := 0; j < (LINES - i); j++ {
            fmt.Print(" ")
        }
        for j := 0; j < (i + 1); j++ {
            var length = len(nums)
            var value int
            if j == 0 || j == i {
                value = 1
            } else {
                value = nums[length-i] + nums[length-i-1]
            }
            nums = append(nums, value)
            fmt.Print(value, " ")
        }
        fmt.Println("")
    }
}

func main() {
    ShowYangHuiTriangle()
}

4.九九乘法表:
package main

import (
    "fmt"
    "strconv"
)

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

func multiplicationTable() {
    for i := 1; i <= 9; i++ {
        for j := 1; j <= i; j++ {
            var ret string
            if i*j < 10 && j != 1 {
                ret = " " + strconv.Itoa(i*j)
            } else {
                ret = strconv.Itoa(i * j)
            }

            fmt.Print(j, " * ", i, " = ", ret, "   ")
        }
        fmt.Print("
")
    }
}

func main() {
    multiplicationTable()
}
5.Go 语言变量作用域

Go 语言中变量可以在三个地方声明:
函数内定义的变量称为局部变量
函数外定义的变量称为全局变量
函数定义中的变量称为形式参数

package main

import "fmt"

/* 声明全局变量 */
var a int = 20

func main() {
    /* main 函数中声明局部变量 */
    var a int = 10
    var b int = 20
    var c int = 0

    fmt.Printf("main()函数中 a = %d
", a)
    c = sum(a, b)
    fmt.Printf("main()函数中 a = %d
", a)
    fmt.Printf("main()函数中 c = %d
", c)
}

/* 函数定义-两数相加 */
func sum(a, b int) int {
    a = a + 1
    fmt.Printf("sum() 函数中 a = %d
", a)
    fmt.Printf("sum() 函数中 b = %d
", b)
    return a + b
}
main()函数中 a = 10
sum() 函数中 a = 11
sum() 函数中 b = 20
main()函数中 a = 10
main()函数中 c = 31

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24404.html

相关文章

  • minikube代码分析与Go语言 - 1

    摘要:闲言最近需要看简写为和相关的技术资料,顺带学一下语言。语言始于年月的三个工程师,年月正式宣布。项目包括语言工具和标准库,以及一切从简的理念。语言本身成熟且稳定,并且保证向下兼容。 [TOC] 闲言 最近需要看Kubernetes(简写为k8s)和docker相关的技术资料,顺带学一下Go语言。 尝试了通过minikube部署遇到镜像下载和网络配置等等各种问题。虽然k8s很火热,但是资料...

    vspiders 评论0 收藏0
  • Go语言的变量、函数、Socks5代理服务器

    摘要:还有一种情况就是当你在一行中写了多个语句,也需要使用分号来分开由于语言词法分析器添加分号的特殊性,所以在有些情况下需要注意你都不应该将一个控制结构或的左大括号放在下一行。 Go语言中变量的声明和JavaScript很像,使用var关键字,变量的声明、定义有好几种形式 1. 变量和常量 // 声明并初始化一个变量 var m int = 10 // 声明初始化多个变量 var i, j...

    simon_chen 评论0 收藏0
  • Go语言的变量、函数、Socks5代理服务器

    摘要:还有一种情况就是当你在一行中写了多个语句,也需要使用分号来分开由于语言词法分析器添加分号的特殊性,所以在有些情况下需要注意你都不应该将一个控制结构或的左大括号放在下一行。 Go语言中变量的声明和JavaScript很像,使用var关键字,变量的声明、定义有好几种形式 1. 变量和常量 // 声明并初始化一个变量 var m int = 10 // 声明初始化多个变量 var i, j...

    Ajian 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<