如何写下你的第一个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程序,但你仍可以做一些拓展,比如询问用户最喜欢的颜色等。

### 回答1: 在 Go 中创建 GUI 程序通常需要使用第三方库。常用的 GUI 库有: 1. GTK:Go 语言实现的 GTK 库,可以跨平台使用,支持 Windows、Linux 和 Mac。 2. qt:Go 语言实现的 Qt 库,支持跨平台,但是需要安装 Qt 开发工具。 3. walk:Windows 平台下的 GUI 库,使用起来比较简单。 4. Fyne:一个跨平台的 GUI 库,使用起来也比较简单。 这里以 GTK 为例,给出一个简单的 GUI 程序的例子: ```go package main import ( "fmt" "github.com/gotk3/gotk3/gtk" ) func main() { // 初始化 GTK gtk.Init(nil) // 创建一个窗口 win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL) if err != nil { fmt.Println("创建窗口失败:", err) return } win.SetTitle("Hello GTK") // 创建一个按钮 button, err := gtk.ButtonNewWithLabel("Click me") if err != nil { fmt.Println("创建按钮失败:", err) return } // 点击按钮时触发的事件 button.Connect("clicked", func() { fmt.Println("Button clicked") }) // 将按钮添加到窗口中 win.Add(button) // 窗口关闭时触发的事件 win.Connect("destroy", func() { gtk.MainQuit() }) // 显示窗口 win.ShowAll() // 进入 GTK 主循环 gtk.Main() } ``` 在这个例子中,我们创建了一 ### 回答2: 使用Go语言编GUI程序需要使用一些第三方库,例如fyne或gotk3等。这些库可以让我们在Go中创建和管理图形用户界面。 首先,我们需要安装所选的GUI库。对于Fyne,可以使用以下命令进行安装: ``` go get fyne.io/fyne/v2 ``` 接下来,我们可以使用以下代码创建一个基本的GUI应用程序: ```go package main import ( "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" ) func main() { a := app.New() w := a.NewWindow("GUI应用程序") content := container.NewVBox( widget.NewLabel("这是一个GUI应用程序"), widget.NewButton("点击我", func() { widget.NewLabel("Hello, World!").Show() }), ) w.SetContent(content) w.ShowAndRun() } ``` 以上代码创建了一个基本的GUI应用程序,包含一个窗口、一个标签和一个按钮。当点击按钮时,会显示一个新的标签,其中包含"Hello, World!"的文本。 请注意,这只是一个简单的示例,可以根据需要进行扩展和修改。在这个应用程序中,我们使用了Fyne库提供的部件和容器来创建GUI界面,并使用回调函数来处理按钮的点击事件。 以上是使用Go语言编GUI程序的基本步骤。通过使用适当的库和函数,我们可以在Go中创建出各种各样的GUI应用程序。 ### 回答3: 在Go语言中,使用`github.com/andlabs/ui`包可以很方便地编GUI程序。下面是一个简单的使用Go语言编GUI程序的示例代码: ```go package main import ( "fmt" "github.com/andlabs/ui" ) func main() { err := ui.Main(func() { // 创建一个主窗口 window := ui.NewWindow("Go GUI 程序示例", 400, 300, false) // 设置窗口关闭时的行为 window.OnClosing(func(*ui.Window) bool { // 关闭主循环 ui.Quit() return true }) // 创建一个垂直布局容器 box := ui.NewVerticalBox() // 将容器添加到主窗口中 window.SetChild(box) // 创建一个标签,并设置标签内容 label := ui.NewLabel("Hello, GUI!") // 添加标签到容器中 box.Append(label, false) // 创建一个按钮 button := ui.NewButton("点击我") // 定义按钮点击事件的处理函数 button.OnClicked(func(*ui.Button) { label.SetText("你点击了按钮") }) // 添加按钮到容器中 box.Append(button, false) // 显示主窗口 window.Show() }) if err != nil { fmt.Printf("错误:%v\n", err) } } ``` 使用`go run`命令运行上述代码,将会创建一个简单的GUI程序窗口。窗口中包含一个标签和一个按钮,点击按钮时标签的内容将会改变。这个示例程序展示了如何使用Go语言中的GUI包创建一个简单的界面,以及如何处理界面元素的事件。当然,Go语言的GUI支持还在不断发展和完善中,可以根据实际需求选择适合的GUI包进行开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值