关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > 技术文章 > 正文

Go 编程基础知识

guanshanw 2023-09-26 12:22 33 浏览 0 评论

在本章中,我们将深入探讨 Go 编程语言的基本构建块。 我们将从编写第一个 Go 程序开始,逐步探索基本概念,例如数据类型、变量、常量和基本运算符。 在本章结束时,您将对基础知识有一个扎实的了解,为您的 Go 编程之旅奠定坚实的基础。


Go 编程基础知识

2.1 Hello, World! - 你的第一个Go程序

让我们从写传统的“Hello, World!”开始。 Go 中的程序。 该程序将演示 Go 程序的基本结构以及如何运行它。

package main

import "fmt"

func main() {

		fmt.Println("Hello, World!")

}

在上面的代码片段中,我们声明了一个 main 函数,它作为任何 Go 程序的入口点。 导入`fmt`包来访问`Println`函数,该函数打印消息“Hello, World!” 到控制台。 要执行该程序,请将其保存在扩展名为“.go”的文件中,例如“hello.go”,然后在终端中运行以下命令:

go run hello.go

您应该看到输出:


Hello, World!


2.2 Go工作空间和目录结构

在继续之前,我们先简要讨论一下 Go 工作区的概念。 Go 工作区是存储 Go 源代码文件及其关联的二进制文件和包的目录。 默认情况下,Go 希望所有项目都位于一个工作区中,该工作区通常具有以下目录结构:

workspace/

├── bin/

├── src/

│ └── github.com/

│ └── your_username/

├── pkg/

└── hello.go

- `src` 目录包含根据包路径组织的 Go 源文件。

- bin 目录存放编译后的可执行二进制文件。

- `pkg` 目录保存已编译的包文件。


注意:从 Go 1.11 开始,Go 引入了模块支持,允许在传统工作空间之外组织项目。


2.3 数据类型

Go 是静态类型的,这意味着变量类型必须在编译时显式声明。 以下是 Go 中的一些基本数据类型:


- **数字类型:** `int`、`int8`、`int16`、`int32`、`int64`、`uint`、`uint8`、`uint16`、`uint32`、`uint64`、`float32 `、`float64`。

- **布尔类型:** `bool` (真或假)。

- **字符串类型:** `字符串`(字符序列)。

- **复杂类型:** `complex64`、`complex128`。


例如:

package main

import "fmt"

func main() {

    var age int = 30

    var pi float64 = 3.14159265359

    var name string = "John Doe"

    var isStudent bool = true

    fmt.Println("Name:", name)

    fmt.Println("Age:", age)

    fmt.Println("Is Student:", isStudent)

    fmt.Println("Value of pi:", pi)

}

2.4 变量和常量

在Go中,变量用于存储和管理在程序执行过程中可以更改的数据,而常量用于表示无法修改的固定值。


**变量:**

package main

import "fmt"

func main() {

    var age int

    age = 30

    var name string = "Alice"

    // Type inference - Go can automatically infer the type of the variable.

    country := "USA"

    fmt.Println("Name:", name)

    fmt.Println("Age:", age)

    fmt.Println("Country:", country)

}

**常数:**

package main

import "fmt"

const pi = 3.14159265359

func main() {

    const companyName string = "Acme Inc."

    fmt.Println("Pi:", pi)

    fmt.Println("Company Name:", companyName)

}

2.5 基本运算符和表达式

与其他编程语言一样,Go 支持一系列算术、比较和逻辑运算符。


**算术运算符:** `+`、`-`、`*`、`/`、`%`(加、减、乘、除、模)。


**比较运算符:** `==`、`!=`、`<`、`>`、`<=`、`>=`(等于、不等于、小于、大于、小于 或等于、大于或等于)。


**逻辑运算符:** `&&`、`||`、`!`(逻辑 AND、逻辑 OR、逻辑 NOT)。


例如:

package main

import "fmt"

func main() {

    var num1, num2 int = 10, 20

    sum := num1 + num2

    difference := num1 - num2

    product := num1 * num2

    quotient := num1 / num2

    remainder := num1 % num2

    fmt.Println("Sum:", sum)

    fmt.Println("Difference:", difference)

    fmt.Println("Product:", product)

    fmt.Println("Quotient:", quotient)

    fmt.Println("Remainder:", remainder)

    isEqual := num1 == num2

    isGreaterThan := num1 > num2

    logicalAnd := true && false

    logicalOr := true || false

    logicalNot := !true

    fmt.Println("IsEqual:", isEqual)

    fmt.Println("IsGreaterThan:", isGreaterThan)

    fmt.Println("LogicalAnd:", logicalAnd)

    fmt.Println("LogicalOr:", logicalOr)

    fmt.Println("LogicalNot:", logicalNot)

}

2.6 类型转换

在 Go 中,将一种类型的值赋给另一种类型的变量时,需要显式类型转换。

package main

import "fmt"

func main() {

    var num1 int = 10

    var num2 float64 = 5.5

    // Converting int to float64

    result := float64(num1) + num2

    fmt.Println("Result:", result)

}

在本章中,我们介绍了 Go 编程的基础知识,包括如何编写和运行基本的 Go 程序、数据类型、变量、常量和基本运算符。 有了这些知识,您现在就可以探索更复杂的概念并深入研究使用 Go 构建现实世界的应用程序。 在下一章中,我们将重点讨论 Go 编程中的控制结构和决策。 继续前进!

相关推荐

七条简单命令让您玩转Git
七条简单命令让您玩转Git

凭借着出色的协作能力、快速部署效果与代码构建辅助作用,Git已经得到越来越多企业用户的青睐。除了用于开发商业及消费级应用之外,众多科学及政府机构也开始尝试使用这...

2023-10-07 12:14 guanshanw

基本完整的关于Git分支branch的操作
基本完整的关于Git分支branch的操作

Git使用背景项目中要用到dev或者其他分支开发完代码,需要将该分支合并到master的需求操作步骤下面以dev名称为lex为分支名为例来操作一遍客户端操作:...

2023-10-07 12:14 guanshanw

Git 进阶(合并与变基)
Git 进阶(合并与变基)

在Git中整合来自不同分支的修改主要有两种方法:合并(merge)以及变基(rebase)合并(merge)merge流程图merge的原理是找到这两个分...

2023-10-07 12:13 guanshanw

Git学习笔记 003 Git进阶功能 part5 合并(第一部分)

合并(merge)是很常用的操作。尤其是一个庞大的很多人参与开发的企业级应用。一般会设定一个主分支,和多个副分支。在副分支开发完成后,合并到主分支中。始终保持主分支是一个完整的,稳定的最新状态的分支。...

非标题党,三张图帮你理解git merge和git rebase的区别
非标题党,三张图帮你理解git merge和git rebase的区别

初始场景:基于正常的开发分支修改几个小bug,然后在合并到开发分支上。gitmergegitcheckoutfeaturegitmergeho...

2023-10-07 12:13 guanshanw

git 初次使用(01)
git 初次使用(01)

先从github上克隆代码下来:使用vscode克隆代码如下图,填写上github仓库地址:vscode有时候克隆代码速度比较慢,可以用命令行方式克隆gitc...

2023-10-07 12:12 guanshanw

Git 远程操作

4.Git远程操作命令说明gitremote远程版本库操作gitfetch从远程获取版本库gitpull下载远程代码并合并gitpush上传远程代码并合并4.1远程版本库操作gitre...

Git常用命令-总结
Git常用命令-总结

创建git用户$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.em...

2023-10-07 12:12 guanshanw

git中删除从别人clone下来项目的git信息,并修改为自己的分支

如果你从别人的Git存储库中克隆了一个项目,并想要删除与该存储库相关的Git信息,并将其修改为你自己的分支,则可以执行以下步骤:使用gitclone命令克隆存储库:gitclone<u...

git系列-回滚和放弃本地修改

回滚历史提交就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。gitreset--hardcommitId//注:强制提交后,当前版本后面的提交版本将会删掉!gi...

GIT使用小技巧大全
GIT使用小技巧大全

在大型软件工程的开发过程中,版本控制是无法绕过去的;目前来说,最火的版本控制软件就是GIT了。早两年SVN比较火,不过被大神linus喷了几次后,就日落西山了,...

2023-10-07 12:11 guanshanw

git相关命令-上
git相关命令-上

这些命令都是看了文档后,个人觉得比较有用的一些,展示给大家。回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。gitfetch--all&...

2023-10-07 12:10 guanshanw

Git命令行接口:掌握Git的必备技能
Git命令行接口:掌握Git的必备技能

Git是一款强大的分布式版本控制工具,它支持命令行界面操作。熟练掌握Git命令行接口,是开发者使用Git的必备技能之一。在这篇文章中,我们将介绍Git命令行接口...

2023-10-07 12:10 guanshanw

Git命令详解
Git命令详解

相信各位小伙伴们应该都对git有一些了解,毕竟作为代码管理的神器,就算不是IT行业的小伙伴肯定也或多或少的听说过一些。今天就来和小伙伴们分享一下自己总结的常用命...

2023-10-07 12:10 guanshanw

工作7年收集到的git命令
工作7年收集到的git命令

概念git中的术语解释:仓库也叫版本库(repository)stage:暂存区,add后会存到暂存区,commit后提交到版本库git安装linux...

2023-10-07 12:10 guanshanw

取消回复欢迎 发表评论: