IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 我的Go+语言初体验——【如果你学习过 Python,那么如何入门 Go+ 语言?】基础篇 -> 正文阅读

[Python知识库]我的Go+语言初体验——【如果你学习过 Python,那么如何入门 Go+ 语言?】基础篇

上一节 我的Go+语言初体验——【如果你学习过 Python,那么如何入门 Go+ 语言?】安装篇 我们讲述了如何安装 GO+ 语言,这篇博文我给自己设立的目标是解决以下几个问题:

  • 注释怎么写
  • 输出语句
  • 如何区别作用域?(C 语言通过大括号,Python 通过缩进形式)
  • 三大程序结构(顺序、循环、分支)
    • 分支种类(if…else…、if…elif…else…、switch….)
    • 循环种类(for…while…. 有没有类似 Python 中,for…else…的特殊用法?)

1. 注释语法

为什么要把注释语法放在第一位呢?因为我认为注释可以让你具有随意修改代码源文件的能力,而不用担心会改变程序运行逻辑,你可以随意添加你想要添加的东西,帮助你理解代码。

从官方文档中(GoPlus),我们可以知道,GO+ 的注释语法和 C 语言类似,使用双斜线的单行注释形式和使用斜杠和星的块状注释形式。就像是下面这样:

package main

func main() {
    type student struct {
		name  string
		score int
	}
	/* 
		以下定义了一个学生集合 
	*/
	students := [student{"Ken", 90}, student{"Jason", 80}, student{"Lily", 85}]
	jasonScore, ok := {x.score for x <- students, x.name == "Jason"} // 对 x.score 进行解包,其中 ok 为标志变量,表示值是否存在
	println(jasonScore, ok)
}

在这里插入图片描述


在 Python 中, 我们使用 # 号作为单行注释。

2. 输出语句

我把输出语句放在了需要关注的第二位,因为只有输出语句才能帮助我们知道程序现在的状态,输出语句就像是程序的嘴巴一样,它会告诉我们它现在的各项特征。即使不借助调试工具,我们也可以使用输出语句来进行 Debug。

我们现在需要搞清楚 Go+ 的输出语句是否和 Python 类似(即和 C 语言进行对比,不需要符号占位修饰)。如果不理解,可以参考下面的例子:

在 C 语言中,

#include <stdio.h>
int main()
{
	int x = 10;
	printf("%d", x); // 在输出的时候我们需要使用 %d 这个符号告诉编译器,我们要输出一个 INT 型,让编译器用 INT 型来解释变量 x
}

在 Python 中,

x = 10 # x = "10"
print(x) # 我们无需关心 x 代表的意义,print 即可。

在 Go+ 中,输出语法我认为和 Python 是十分相像的。在 Go+ 中,使用 println 作为输出关键字。

我们不需要对结果进行字符串修饰,就像是 C 语言那样,更像是 Python,想输出什么就输出什么。

a := Int(1r)
a += Int(2r)
println(a + Int(3r))
println(-a)

是不是有 print("Hello, World!") 那味了?

println("Hello, Go+")

对于 Go+ 中的常用数据结构,也可以直接输出。

arr := [1, 3, 5, 7, 11, 13, 17, 19]
println(arr)
println([x*x for x <- arr, x > 3])
m := {"Hi": 1, "Go+": 2}
println(m)

3. 作用域的划分方式

参考网上案例:学习Go语言必备案例 (3),寻找关于作用域的蛛丝马迹。

  • 从这个案例中我们可以看出 Go+ 语言,使用类似于 C/C++ 的方式来划分作用域(使用大括号)。
  • 不论是循环语句,还是函数,均使用大括号的形式。
package main

import (
	"fmt"
)
func f(from string) {
	for i := 0; i < 3; i++ {
		fmt.Println(from, ":", i)
	}
}
func main() {
	//假设我们有一个函数叫做 f(s)。我们使用一般的方式调并同时运行。
	f("direct")

	//使用 go f(s) 在一个 Go 协程中调用这个函数。
	// 这个新的 Go 协程将会并行的执行这个函数调用。
	go f("goroutine")

	//你也可以为匿名函数启动一个 Go 协程。
	go func(msg string) {
		fmt.Println(msg)
	}("going")

	//现在这两个 Go 协程在独立的 Go 协程中异步的运行,所以我们需要等它们执行结束。
	// 这里的 Scanln 代码需要我们在程序退出前按下任意键结束。
	var input string
	fmt.Scanln(&input)
	fmt.Println("done")
}

4. 分支语句

和 C 语言类似,我们使用 if..else if... else... 即可。

x := 10
if x > 0 {
    println("x > 0")
} else if x == 0 {
    println("x == 0")
}else {
    println("x < 0")
}

同样的功能使用 Python 也很容易实现,在 Python 交互式界面中。

>>> x = 10
>>> if x > 0:
...     print("x > 0")
... elif x == 0:
...     print("x = 0")
... else:
...     print("x < 0")
...
x > 0

5. 循环语句

以下是 for loop,和 Python 所使用的 for in ... 结构不太一样,Go+ 使用 for ... <- ... 形式,就像是下面这个例子一样,如果学习过 Python,应该很好理解下面程序的作用。

sum := 0
for x <- [1, 2, 3, 4, 5] {
    sum += x
}
println(sum) // 15

相同功能使用 Python 来写是这样的:

sum = 0
for x in [1,2,3,4,5]:
	sum += x
print(sum)

在 Go+ 的 for loop 中,我们还可以这样写,用来筛选数据:

sum := 0
for x <- [1, 2, 3, 4, 5], x > 3 {
    sum += x
}
println(sum) // 9

相同功能使用 Python 来写是这样的:

sum = 0
for i in [x for x in [1, 2, 3, 4, 5] if x > 3]:
	sum += x
print(sum)	//	9

比较上述两种写法,我不认为是循环语句的不同,而是类似于 Python 列表表达式在 Go+ 上的体现,你看,将 Python 语句中的 if 换成 就十分类似于 Go 语言的写法。

关于 while loop,不像是 Python 中有 while 语句,Go+ 中没有 while 关键词,只能通过 for 来实现,以下是二者的区别:

i:=0
for {
	// do something
	i++
	if i > 10 {
		break;
	}
}
println(i) // 11
i = 0
while i > 10:
	i += 1
print(i)

6. 函数调用

  • 有些功能不需要返回值,这种情况下 return_types 不是必须的。
  • 形参指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。

快速入门,告诉你 Go 语言的函数调用应该怎么写:

package main

func myFunction(a, b int) (int, int) { // 函数名(形参,类型)(返回类型1,返回类型2...)
	return a + b, a - b
}

func main() {
	println(myFunction(66, 77)) // 143 -11
}

小结

以上就是关于 Go+ 语言的基础部分,这些都是我对一门新的编程语言十分好奇的地方,下次我将从 Go+ 有趣的数据结构入手,和 Python 进行比较。


活动链接:https://bbs.csdn.net/topics/603464006?utm_source=1594742339
本人博客地址:https://blog.csdn.net/weixin_39541632?spm=1001.2101.3001.5343

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:39:41  更:2021-12-01 17:39:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:27:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码