如何写下你的第一个Go程序

如何写下你的第一个Go程序

介绍

“Hello World"程序是计算机编程中一个经典而历史悠久的传统。对于新手来说,这是第一个简单而完整的程序,也是一个检验环境配置的好方法。

这篇教程将引导你在使用Go 创建此程序。但是,为了让程序更有趣,你将会修改传统的“Hello World”程序,使它能够询问用户的姓名。从而你能够对用户进行问候。当你跟着教程完成这个程序,run起来你得到一个看起来如下的程序:

Please enter your name.
Sammy
Hello, Sammy! I'm Go!

前期准备

在你开始这篇教程之前,你需要在你的电脑上安装配置了Go的开发环境。你可以按照下面的教程进行安装:
如何在macOS上安装Go并设置本地编程环境
如何在Ubuntu 18.04 上安装Go并设置本地编程环境
如何在Win 10 上安装Go并设置本地编程环境

步骤一:写一个基本的“Hello World"程序

为了写这个“Hello World”程序,打开命令行编辑器如nanovim等来创建一个文件。

nano hello.go / vim hello.go

在终端窗口中打开文本文件后,键入下面的程序:

package main

import "fmt"

func main() {
  fmt.Println("Hello, World!")
}

让我们分解一下代码的组成成分。
package是一个Go的关键词,用来定义文件属于哪个代码包。在一个目录下,只能有一个包,并且所有的.go文件必须在文件开头声明同样的包名。在这个例子中,这段代码是属于main包的。
import是Go的一个关键词,用来告诉编译器你想要使用哪些其他的代码包。这里你引入了标准库中的fmt包。fmt包提供了许多格式化和打印的函数,这些函数在开发时是非常有用的。
fmt.Printlnfmt中的函数,可以将一些文本信息打印到屏幕上。

fmt.Println函数后面跟着被引号引起来的一个字符串序列,这里是“Hello World"。被引号引起来的任何字符可以被叫做字符串。当程序运行的时候,fmt.Println函数将把这个字符串打印到屏幕上。

保存并退出文件后,你就可以试着跑一下你的程序。

步骤二:运行一个Go程序

在步骤一中,你写好来一个“Hello World”程序,现在准备来运行一下。此时,你需要使用go命令了。

go run hello.go

程序将会执行,并显示如下输出:

Hello, World!

让我们来看看究竟发生了什么。

Go程序在运行前是需要编译的,因此当我们使用go run命令时,go命令将会先编译该应用然后再运行。对于编译型语言,编译器会将程序中的代码转换成低级的代码(如机器代码)的形式来生成一个可执行的程序。

Go应用需要一个main包和一个main函数,作为这个应用的入口点。main函数不需要任何参数,也不会返回任何的值。它只是告诉Go编译器,要将main包编译为可执行的包。

一旦编译完成,代码将会从main包里的main函数开始执行。

在步骤二中,你已经创建了一个可以运行的“Hello World”的Go程序。接下来你将探索如何让程序更具交互性。

步骤三:提示用户输入

在以上步骤,每次运行程序的时候,都只会产生同样的输出。现在,你可以将提示用户输入他们的名字的功能增加到你的程序中,并将他们的名字作为输出的一部分。

我们新建一个叫做greeting.go的程序文件。
首先,增加提示用户输入名字的代码:

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
}

再一次的,使用了fmt.Println函数来输出一些文本信息。

现在,增加了捕捉用户输入的代码:

package main

import (
    "fmt"
)

func main() {
  fmt.Println("Please enter your name.")
  var name string
  fmt.Scanln(&name)
  fmt.Printf("Hi, %s! I'm Go!", name)
}

fmt.Scanln函数会等待键盘的输入,直到遇到换行符。它会阻塞该程序,并允许用户输入任何字符,当用户输入完成后,按下ENTER键,程序将继续执行。需要注意的是,包括最后输入的ENTER,都会被程序捕捉,并写入name变量中。得到如下输出:

Please enter your name.
Sammy
Hi, Sammy
! I'm Go!

这和我们的预期有些差别,因为ENTER被捕捉了导致了换行。
现在加入代码,来处理这个问题:

name = strings.TrimSpace(name)

此时,引入了标准库中strings包的TrimSpace函数,此函数将会去除字符串开题和结尾处中的任何空白字符,包括换行符。

现在得到最终代码:

package main

import (
        "fmt"
        "strings"
)

func main() {
    fmt.Println("Please enter your name.")
    var name string
    fmt.Scanln(&name)
    name = strings.TrimSpace(name)
    fmt.Printf("Hi, %s! I'm Go!", name)
}

保存并退出文件后,运行:

go run greeting.go

这次,在输入名字并按ENTER后,得到了我们预期的输出:

Please enter your name.
Sammy
Hi, Sammy! I'm Go!

现在,你已经学会了如何写一个Go程序,并获取用户输入,将其打印在屏幕上了。

结论

在这篇教程中,写了一个“Hello World”程序,来捕捉用户输入,处理中间变量和展示输出。现在你已经学会了如何写一个基本的Go程序,但你仍可以做一些拓展,比如询问用户最喜欢的颜色等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值