初识go语言
在学习语言的时候一定要了解它的优缺点和适用场景,go语言是一种静态类型的编译型语言,它的执行速度快,跨平台支持好,在并发编程方面具有特别适用场景的特点。go语言的语法比较简洁,易于上手,熟悉c语言的同学可以很快适应它的语法,而且go语言自带了gc垃圾回收机制,减轻了开发者的垃圾回收负担。
熟悉了语言的特性和适用场景后,我们来试着利用go语言完成一个项目。
项目规划
项目选题:判断一个由数字和小写字母组成的字符串是否是回文串
项目的流程如下:
- 首先读入一个字符串
- 将字符串反转,得到新的字符串
- 比较原字符串和反转字符串是否相等
- 如果相等则输出是回文串,否则输出不是回文串
实现过程
首先,我们需要从控制台读入一个字符串,go语言中可以使用"bufio"包中的"newreader"来进行缓存读取:
```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.print("请输入一个字符串:")
reader := bufio.newreader(os.stdin)
data, _, _ := reader.readline()
str := string(data)
fmt.println("你输入的字符串是:" str)
}
```
接下来,我们需要将字符串反转,go语言中可以直接使用"reverse"函数实现字符串反转:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
fmt.print("请输入一个字符串:")
reader := bufio.newreader(os.stdin)
data, _, _ := reader.readline()
str := string(data)
fmt.println("你输入的字符串是:" str)
runes := []rune(str)
for i := 0; i < len(runes)/2; i { runes[i], runes[len(runes)-1-i] = runes[len(runes)-1-i], runes[i] } newstr := string(runes) fmt.println("反转后的字符串是:" newstr)}```
最后,我们将原字符串和反转后的新字符串进行比较,实现项目:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
fmt.print("请输入一个字符串:")
reader := bufio.newreader(os.stdin)
data, _, _ := reader.readline()
str := string(data)
fmt.println("你输入的字符串是:" str)
runes := []rune(str)
for i := 0; i < len(runes)/2; i { runes[i], runes[len(runes)-1-i] = runes[len(runes)-1-i], runes[i] } newstr := string(runes) fmt.println("反转后的字符串是:" newstr) if strings.equalfold(str, newstr) { fmt.println("是回文串") } else { fmt.println("不是回文串") }}```
至此,我们实现了一个简单的go语言项目。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/golang-ef.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及捕鱼10元起上10元下的版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的捕鱼10元起上10元下的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!