Go语言中如何实现函数递归、定义类型别名及创建自定义类型?

2026-05-22 13:021阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计420个文字,预计阅读时间需要2分钟。

Go语言中如何实现函数递归、定义类型别名及创建自定义类型?

pythonpackage main

import fmt

// 递归:自己调用自己// 递归:自己调用自己// 递归适用于处理那种相同、问题规模越来越小的场景// 递归一定要有一个明确的退出条件// 永远不要高估自己

3!=3 * 2 * 1=3 * 2! / // 4

Go语言中如何实现函数递归、定义类型别名及创建自定义类型?

递归

package main import "fmt" // 递归:自己调用自己 // 递归适合处理那种问题相同、问题规模越来越小的场景 // 递归一定要有一个明确的退出条件 // 永远不要高估自己 // 3! = 3 * 2 * 1 = 3* 2! // 4! = 4 * 3 * 2 * 1 = 4 * 3! // 5! = 5 * 4 * 3 * 2 * 1 = 5 * 4! // 计算n的阶乘 func f(n uint64) uint64 { if n <= 1 { return 1 } return n * f(n-1) } // 上台阶的面试题 // n个台阶,一次可以走一步,也可以走两步,有多少种走法 func taijie(n uint64) uint64 { // 如果只有一个台阶 就一种走法 if n == 1 { return 1 } if n == 2 { return 2 } return taijie(n-1) + taijie(n-2) } func main(){ ret := f(5) fmt.Println(ret) res := taijie(3) fmt.Println(res) }

结构体(struct)

类型别名和自定义类型

Go语言中可以使用type关键字来定义自定义类型

类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型

package main import "fmt" // 自定义类型和类型别名 // type 后面跟的是类型 type myInt int // 自定义类型 编译完之后也保留 type yourInt = int // 类型别名 只在代码编写过程中有效 编译完就没有了 func main () { var n myInt n = 100 fmt.Println(n) fmt.Printf("%T\n", n) // main.myInt var m yourInt m = 100 fmt.Println(m) fmt.Printf("%T\n", m) // int var c rune c = '中' fmt.Println(c) fmt.Printf("%T\n", c) // int32 }

本文共计420个文字,预计阅读时间需要2分钟。

Go语言中如何实现函数递归、定义类型别名及创建自定义类型?

pythonpackage main

import fmt

// 递归:自己调用自己// 递归:自己调用自己// 递归适用于处理那种相同、问题规模越来越小的场景// 递归一定要有一个明确的退出条件// 永远不要高估自己

3!=3 * 2 * 1=3 * 2! / // 4

Go语言中如何实现函数递归、定义类型别名及创建自定义类型?

递归

package main import "fmt" // 递归:自己调用自己 // 递归适合处理那种问题相同、问题规模越来越小的场景 // 递归一定要有一个明确的退出条件 // 永远不要高估自己 // 3! = 3 * 2 * 1 = 3* 2! // 4! = 4 * 3 * 2 * 1 = 4 * 3! // 5! = 5 * 4 * 3 * 2 * 1 = 5 * 4! // 计算n的阶乘 func f(n uint64) uint64 { if n <= 1 { return 1 } return n * f(n-1) } // 上台阶的面试题 // n个台阶,一次可以走一步,也可以走两步,有多少种走法 func taijie(n uint64) uint64 { // 如果只有一个台阶 就一种走法 if n == 1 { return 1 } if n == 2 { return 2 } return taijie(n-1) + taijie(n-2) } func main(){ ret := f(5) fmt.Println(ret) res := taijie(3) fmt.Println(res) }

结构体(struct)

类型别名和自定义类型

Go语言中可以使用type关键字来定义自定义类型

类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型

package main import "fmt" // 自定义类型和类型别名 // type 后面跟的是类型 type myInt int // 自定义类型 编译完之后也保留 type yourInt = int // 类型别名 只在代码编写过程中有效 编译完就没有了 func main () { var n myInt n = 100 fmt.Println(n) fmt.Printf("%T\n", n) // main.myInt var m yourInt m = 100 fmt.Println(m) fmt.Printf("%T\n", m) // int var c rune c = '中' fmt.Println(c) fmt.Printf("%T\n", c) // int32 }