Golang入门到项目实战 | golang中的if语句

Python08

Golang入门到项目实战 | golang中的if语句,第1张

go语言中的if语句和其他语言中的类似,都是根据给定的条件表达式运算结果来,判断执行流程。

注意:在go语言中 布尔表达式不用使用括号。

根据布尔值flag判断

程序运行结果

初始变量可以声明在布尔表达式里面,注意它的作用域

程序运行结果

注意:不能使用0或非0表示真假

go语言if语句使用提示:

go语言中的if else语句可以根据给定条件二选一。

比较两个数的大小

运行结果

判断一个数是奇数还是偶数

运行结果

判断一个人是否成年

运行结果

特殊写法,在if前面添加执行语句

运行结果

go语言if语句使用提示:

go语言if语句可以进行多重嵌套使用,进行多重判断。

根据分数判断等级

运行结果

同样也可以写成这样

运行结果

输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母

运行结果

go语言if语句可以嵌套多级进行判断。

判断三个数的大小

运行结果

判断男生还是女生,还有是否成年

运行结果

看是什么语言的通配符了.

通配符(wildcard)是一类键盘字符,包括星号(*)、问号 )和百分号(%)等,当进行网络或文件查找不知道真正字符或者不想键入完整单词时,可以使用它来代替真正字符或完整的单词.

Google使用的通配符属于“全词通配符”(full-word wildcard)是指代替一个单词而不是单词中的某个或几个字母的键盘字符,google的全词通配符是*(星号),一次检索可以使用若干个*.

一些搜索引擎如:AltaVista、Inktomi、Northern Light、Yahoo 等支持通配符*,AOL Search、Inktomi等支持通配符?,Northern Light等支持通配符%.在这里*、?、%的确切含义是“词间通配符”(partial-word wildcard),即只能代替单词中的一个或几个字母,而非整个单词.google目前不支持词间通配符.full-word wildcard虽不及partial-word wildcard常用,但它在实际搜索中的功能是不可忽视和替代的.

在查找歌词、诗歌、短语等,对其中某个单词记忆或拼写不准时,用通配符可以快速找到原文.如对戴比·哈里(Debbie Harry)的《Heart of Glass》歌词首句是“Once I had a lung and it was a gas”,或是

“Once I had a lunch and it was a gas”记不确切,可输入"Once I had a * and it was a gas"搜索,可查得正确的歌词是“Once I had a love...”

解答咨询时,通配符是快速找到答案的捷径.如解答"How often does Halley's comet appear?"(哈雷彗星多少年出现一次?),用"Halley's comet appears every * years"搜索,可以轻而易举地得到答案:Halley's comet appears every 76 years .

Google一次检索限制在10个单词以内,检索词超过10个将被忽略,此规则不把通配符*包括在内,据此可以检索超过10个单词的特定语句.如检索"There’s a lady who’s sure all that glitters is gold and she’s buying a stairway to heaven",google会在“gold”之后截止超量单词,按常规检索方法,一般用"glitters is gold"或"buying a stairway"进行检索,如得不到预想结果,可增加检索词,如用:"buying a stairway to heaven" 替代"buying a stairway"再次检索,如此需多次输入并进行大量的结果甄别,费时费力,而使用通配符就简捷得多,用"* * lady * sure * * glitters * gold * she’s buying * stairway * heaven"搜索,其结果在首页第一项便满足检索需求.

查找派生词组和了解主题信息,使用通配符也极为方便.如:"take * of"可以查到诸如Take Charge of、Take Control of、take advantage of、Take control of、take command of等等以Take...of组成的词组;而

"* About Search Engines"的搜索结果要比"Search Engines"更具体、贴切和实用.

通配符“*”可以在intitle:、site:等搜索语法中使用,如:intitle:"the* of new york"、site:us "* * search engine * *" 等等.

通配符“*”也支持也中文搜索,一个“*”代替一个汉字,但在实际使用中其功能远不及英文搜索.

1. 保留但大幅度简化指针

Go语言保留着C中值和指针的区别,但是对于指针繁琐用法进行了大量的简化,引入引用的概念。所以在Go语言中,你几乎不用担心会因为直接操作内寸而引起各式各样的错误。

2. 多参数返回

还记得在C里面为了回馈多个参数,不得不开辟几段指针传到目标函数中让其操作么?在Go里面这是完全不必要的。而且多参数的支持让Go无需使用繁琐的exceptions体系,一个函数可以返回期待的返回值加上error,调用函数后立刻处理错误信息,清晰明了。

3. Array,slice,map等内置基本数据结构

如果你习惯了Python中简洁的list和dict操作,在Go语言中,你不会感到孤单。一切都是那么熟悉,而且更加高效。如果你是C++程序员,你会发现你又找到了STL的vector 和 map这对朋友。

4. Interface

Go语言最让人赞叹不易的特性,就是interface的设计。任何数据结构,只要实现了interface所定义的函数,自动就implement了这个interface,没有像Java那样冗长的class申明,提供了灵活太多的设计度和OO抽象度,让你的代码也非常干净。千万不要以为你习惯了Java那种一条一条加implements的方式,感觉还行,等接口的设计越来越复杂的时候,无数Bug正在后面等着你。

同时,正因为如此,Go语言的interface可以用来表示任何generic的东西,比如一个空的interface,可以是string可以是int,可以是任何数据类型,因为这些数据类型都不需要实现任何函数,自然就满足空interface的定义了。加上Go语言的type assertion,可以提供一般动态语言才有的duck typing特性, 而仍然能在compile中捕捉明显的错误。

5. OO

Go语言本质上不是面向对象语言,它还是过程化的。但是,在Go语言中, 你可以很轻易的做大部分你在别的OO语言中能做的事,用更简单清晰的逻辑。是的,在这里,不需要class,仍然可以继承,仍然可以多态,但是速度却快得多。因为本质上,OO在Go语言中,就是普通的struct操作。

6. Goroutine

这个几乎算是Go语言的招牌特性之一了,我也不想多提。如果你完全不了解Goroutine,那么你只需要知道,这玩意是超级轻量级的类似线程的东西,但通过它,你不需要复杂的线程操作锁操作,不需要care调度,就能玩转基本的并行程序。在Go语言里,触发一个routine和erlang spawn一样简单。基本上要掌握Go语言,以Goroutine和channel为核心的内存模型是必须要懂的。不过请放心,真的非常简单。

7. 更多现代的特性

和C比较,Go语言完全就是一门现代化语言,原生支持的Unicode, garbage collection, Closures(是的,和functional programming language类似), function是first class object,等等等等。

看到这里,你可能会发现,我用了很多轻易,简单,快速之类的形容词来形容Go语言的特点。我想说的是,一点都不夸张,连Go语言的入门学习到提高,都比别的语言门槛低太多太多。在大部分人都有C的背景的时代,对于Go语言,从入门到能够上手做项目,最多不过半个月。Go语言给人的感觉就是太直接了,什么都直接,读源代码直接,写自己的代码也直接。