go语言编程之旅一起用go做项目(go语言编程之旅)

初识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

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年5月2日 上午1:44
下一篇 2023年5月2日 上午1:45

猜你喜欢