Go学习笔记(第一天)
利用ChatGPT出题,进行编写
学习golang第一天,在菜鸟教程迅速过完golang基础知识,找ChatGPT为我出了五道题,历时40分钟完成。
问:
我现在学习了golang的变量 常量 函数 判断 循环 slice map range等知识 请你出五道题来检验我的学习成果
GPT答:
当然,我可以为您出五道关于Go语言的问题来检验您的学习成果。请注意,这些问题涵盖了您提到的不同主题,包括变量、常量、函数、判断、循环、切片、映射和范围。希望这些问题能帮助您巩固所学知识。
1.请写一个Go函数,接受两个整数作为参数,返回它们的和。
2.在Go语言中,如何声明一个不可变的常量?请提供一个示例。
3.使用Go语言编写一个循环,打印出1到10之间的所有偶数。
4.假设您有一个切片(slice)包含整数 [1, 2, 3, 4, 5],编写一个Go函数,将切片中的每个元素都加倍,并返回结果。
5.编写一个Go程序,创建一个映射(map),将一些国家的首都与其对应的国家关联起来。然后,编写代码来查找特定国家的首都并打印出来。
希望这些问题对您有帮助,同时也希望您能够成功回答它们以巩固您的Go语言知识。如果您有任何问题或需要进一步解释,请随时告诉我。
问:请帮我出一些综合性的题
GPT答:
当然,下面是一些综合性的Go语言问题,它们涉及多个方面的知识。这些问题将考察您的能力综合应用不同概念和技巧。
1.编写一个Go程序,提示用户输入一个数字,并确定该数字是奇数还是偶数,然后打印出结果。
2.创建一个Go函数,接受一个整数切片和一个目标整数作为参数。函数应该返回目标整数在切片中的索引位置,如果目标整数不在切片中,则返回-1。
3.编写一个Go程序,生成斐波那契数列的前20个数字并将它们打印出来。斐波那契数列的定义是前两个数字都是1,后面的数字是前两个数字之和。
4.创建一个Go程序,用于计算给定半径的圆的面积和周长。您可以使用数学包来执行必要的数学运算。
5.编写一个Go函数,接受一个字符串作为参数,然后返回一个新字符串,其中所有的元音字母都被替换为大写字母。例如,如果输入 “hello”,则输出应为 “hEllO”。
这些问题将考察您在Go语言中的基本编程能力和一些高级概念的应用。希望它们能够帮助您继续巩固和拓展您的知识。如果您需要更多综合性问题或需要解释,请随时告诉我。
代码实现
/*
当然,下面是一些综合性的Go语言问题,它们涉及多个方面的知识。这些问题将考察您的能力综合应用不同概念和技巧。
1.编写一个Go程序,提示用户输入一个数字,并确定该数字是奇数还是偶数,然后打印出结果。
2.创建一个Go函数,接受一个整数切片和一个目标整数作为参数。函数应该返回目标整数在切片中的索引位置,如果目标整数不在切片中,则返回-1。
3.编写一个Go程序,生成斐波那契数列的前20个数字并将它们打印出来。斐波那契数列的定义是前两个数字都是1,后面的数字是前两个数字之和。
4.创建一个Go程序,用于计算给定半径的圆的面积和周长。您可以使用数学包来执行必要的数学运算。
5.编写一个Go函数,接受一个字符串作为参数,然后返回一个新字符串,其中所有的元音字母都被替换为大写字母。例如,如果输入 "hello",则输出应为 "hEllO"。
这些问题将考察您在Go语言中的基本编程能力和一些高级概念的应用。希望它们能够帮助您继续巩固和拓展您的知识。如果您需要更多综合性问题或需要解释,请随时告诉我。
*/
package main
import (
"fmt"
"math"
)
func judgeNumber(number int) {
if number%2 == 0 {
fmt.Println("偶数")
} else {
fmt.Println("奇数")
}
}
func getPosition(slice1 []int, number int) int {
flag := false
for i, v := range slice1 {
if v == number {
flag = true
return i
}
}
if flag == false {
return -1
}
return -1
}
func fibonacci() []int {
slice := []int{1, 1}
for i := 0; i < 20; i++ {
if i > 1 {
slice = append(slice, []int{slice[i-1] + slice[i-2]}...)
}
}
return slice
}
func processRound(number int) (float32, float32) {
s := (math.Pi * float32(number)) * (math.Pi * float32(number))
c := math.Pi * float32(number)
return s, c
}
func convertUpper(input string) string {
letters := "aeiou"
uppers := "AEIOU"
inputBytes := []byte(input)
for i := 0; i < len(inputBytes); i++ {
for i2 := 0; i2 < len(letters); i2++ {
if inputBytes[i] == letters[i2] {
inputBytes[i] = uppers[i2]
}
}
}
result := string(inputBytes)
return result
}
func main() {
judgeNumber(3)
fmt.Println(getPosition([]int{1, 2, 3, 4, 5}, 4))
fmt.Println(fibonacci())
fmt.Println(processRound(2))
fmt.Println(convertUpper("iloveyou"))
}