`
stephen830
  • 浏览: 3011527 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[开心学go语言]2、简单了解语法

 
阅读更多

 

 

 

第一章:开心学Go语言:部署篇

每一个新语言的产生必然会产生语法的变更。

在我印象中,c#和java 白热化的竞争,着实带给我们很多好处,譬如两者的语法像的一塌糊涂,所以从c#屌丝转换为java屌丝只需熟悉熟悉各种库的用法即可。

然后做习了php 这时突然转到Go语言,就有很大压力了。

我的建议是,先了解最最基本和常用的语法。在实际学习和演练中慢慢了解其他语法,不要一下子把Go的语法全部掌握,一个是时间耗费的太长,另外一个是会导致你前学后忘。

接下来我们进入正式学习篇。

一、变量申明

php是弱类型语言,一般一个货色拿过来可以直接赋值如 $a=1 $a=”你好“

c#和java是强类型语言,一般变量必须申明类型,如果不知道那至少得申明为 object

Go语言是超强类型语言,怎么个超强法?超强到int16 和int32 它都认为不能互相进行相加

所以要熟悉GO 必须先知道怎么申明变量

在Go中,是使用var 来做申明的,和javascript的申明方法 很类似。

譬如

package main
import (
    "fmt"  //这个包别告诉我你忘了
)
func main() {
    var a int   //申明一个变量 a 是int型的
    a = 3
    fmt.Printf("number is %d", a) //打印出 a的值
}

以上有几个注意点: var a int 代表申明a是int型的变量

如果你特别懒,不像申明,想像php那样直接使用 也不是不可以

package main

import (
	"fmt"
)
func main() {
	a := 3 //好习惯要养成,最好是申明类型
	fmt.Printf("nunber is %d", a)
}

语法注意点:

1、代码不要分号。其实GO语言是要分号的,但是Go编译器在编译的时候自动会帮你添加分号。如果你加了分号,其实等于每句代码后有两个分号。就出错了

2、c#中是 int a=3.GO语言反过来写,一开始不会太适应。慢慢就好了。

var a int = 3

var a int 换行 写a=3

a:=3

以上三句 都一样

 

下面有个常见点:大部分出现在你在windows编写代码时出现

package main

import (
	"fmt"
)
func main() {
	fmt.Printf("我是一个程序员")

}

 

你会发现编译出错,那是因为你在windows随手 创建的txt文本是unicode编码,而GO语言必须使用Utf8编码,所以你必须把该txt另存为无Bom的utf8文件(记住是无bom的utf8 文件,仅仅是utf8是不行的。bom是windows特有的,人家都不太鸟微软的)

 

二、类型转换

Go语言的类型转换不是一般的麻烦

如:

a:=1

var b string

这时想把 a转换为字符串 和b 想加。那么就需要把a转换为string型。

注意:Go语言类型转换 是有专门的转换方法的,强制转换在Go中根本行不通

package main

import (
	"fmt"
	"strconv" //这个包就是专用来干 类型转换的事情的
)

func main() {
	a := 100
	var b string
	b = "开心学Go语言"
	b = b + strconv.Itoa(a) + "天"   //strconv.Itoa就是把整形转换为字符串
	fmt.Printf(b)

}

 

strconv.Itoa就是把整形转换为字符串,注意它仅仅只能干整形转换为字符串这样的事。

要转行Float 必须使用 strconv.FormatFloat 函数

这里再体现一个GO语言的超强类型

package main

import (
	"fmt"
	"strconv" //这里也要注意,如果下面程序中没有使用到 这个包,编译会出错 
)

func main() {
	a := 100
	var c int32 = 20
	d := a + int(c)  //注意这里,int32和int不能互相相加 必须转换
	fmt.Printf("相加结果是%d", d)

}

 

这种语法限制很好,虽然写起来很繁琐,但是程序员性能会很高。不像PHP,人家都说PHP写出来的程序很”脏“,到处有未使用的变量和定义函数,从一定程度上是消耗了性能,虽然有时我们肉眼看不出来。

这里顺便讲一个php要点

往往我们在写函数时,需要加个判断

if ( ! function_exists( 'somefunction' ) ):
  function somefunciont()
  {
  ......
   }
endif;

 

这样做的好处是,防止函数重定义。这在公共平台中允许大家一起写函数插件时很有用。

 

三、数组

GO的数组定义还是很清晰的。

如:

 

package main

import (
	"fmt"
)
func main() {
	a := [5]int{1, 2, 3, 4, 5} //手动赋值
	fmt.Print(a)
}

 

如果不需要手动赋值,要动态赋值,那么可以这样

package main

import (
	"fmt"
)
func main() {

	var a [5]int   //注意这里不能写成 a:=[5]int   
	a[0] = 1
	a[1] = 2
	fmt.Print(a)
}

 

这里代表,初始化一个数组a,里面有5个元素,动态赋值第一个和第二个元素值为1和2,

GO编译器会自动把 剩余的3个元素 赋值为 0,0,0

这里介绍一个数据切片功能,一看就能懂。

package main

import (
	"fmt"
)

func main() {

	var a [5]int
	a[0] = 1
	a[1] = 2
	fmt.Print(a[1:3]) //输出 a[1] 和 a[3] 两个值
	fmt.Print(a[:3])  // 输出  a[0] a[1] a[2]  注意不包括 a[3]
	fmt.Print(a[1:])  //输出  a[1] a[2] a[3] a[4] 
}

 

好了,基本语法 先到这。大家肯定要讲,还有很多啊。如if 判断,for循环等等。

其实不用着急学这个。下一章我们来做一个 简单的函数,顺手就学到了这些基本语法。

注意:还是那句话,一次不要学太多。 尤其是像if for循环。现在学它干嘛?又没有上手开始写代码。

数组是要先学的。任何语言,上手首先要学的就是数组。这叫跳跃式学习方法。

好,敬请大家等待一章,不会很久哦。。。 下一章带领大家写几个我们常用的应用函数。

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    获奖开心学英语六级下册PPT学习教案.pptx

    【获奖开心学英语六级下册PPT学习教案】正是基于这一需求而设计的专业教学资料,它以吸引人的方式整合了丰富的教学内容,旨在为学生提供全方位的英语学习体验。 教案的开始部分通常包含了日常生活中的基本交流语句...

    广东开心学英语四年级下册unitweekendfunPPT课件.pptx

    这篇PPT课件是针对四年级学生设计的,旨在教授与...总的来说,这个课件涵盖了基础的英语语法、动词短语、日常对话和角色扮演,旨在帮助四年级的学生提升他们在描述周末活动方面的英语水平,并提高他们的语言交际技巧。

    开心版六年级下册小学英语Unit 2 A Magic Day单元测试卷.doc

    以上就是关于“开心版六年级下册小学英语Unit 2 A Magic Day单元测试卷”的知识点解析,包括动词过去式、单项选择题的解题技巧、根据上下文理解并回答问题以及连词成句的练习。这些内容旨在帮助学生巩固过去时态的...

    开心学英语五年下册综合练习题精选.doc

    《开心学英语五年下册综合练习题精选》是一份专门为五年级学生设计的英语学习资料,其目的是为了全面提高学生的英语综合应用能力。这份资料涵盖了一系列的练习题,内容丰富多样,覆盖了听力、词汇、语法等多个方面,...

    开心学英语六年级上册复习知识点整理PPT学习教案.pptx

    通过以上梳理,我们可以看到这个六年级上册的英语复习涵盖了词汇、日常表达、语法和功能性语言,旨在提升学生的英语听说读写能力,并将英语学习与实际生活场景相结合,以达到"开心学英语"的教学目标。

    开心学英语五年级下册Unit4Review1PPT课件.pptx

    本次我们讨论的“开心学英语五年级下册Unit4Review1PPT课件”便是针对这一阶段学生的教学需求而设计的,旨在通过生动的课堂教学帮助学生巩固并练习动词的过去式。 动词的过去式是英语时态中非常重要的一个组成部分...

    冠词小学英语语法PPT学习教案.pptx

    小学英语语法中的冠词是学习英语基础的重要组成部分,主要分为三类:不定冠词(a/an)、定冠词(the)以及零冠词。冠词的使用规则在英语语法中占有相当大的比重,它们帮助确定名词的具体含义和用法。 **不定冠词 a/...

    开心版六年级下册小学英语Unit 2 A Magic Day 同步练习.doc

    总之,开心版六年级下册小学英语Unit 2 A Magic Day同步练习为学生提供了一个全面、系统的学习平台,不仅使学生能够掌握必要的词汇和语法知识,还通过实践锻炼了阅读理解和写作能力。这种教学资源的使用有助于学生在...

    五年级英语下册 Unit 8(2)教案 广东版开心.doc

    【五年级英语下册 Unit 8(2)教案 广东版开心.doc】是一份针对小学五年级学生的英语教学方案,旨在帮助学生掌握特定的英语语法、句型、词汇以及发音,同时提升他们的听说读写能力。以下是该教案的主要内容和教学目标...

    疯狂:只是学习一些golang

    在编程世界中,Go语言(也称为Golang)是一门由Google开发的现代、静态类型的系统编程语言。它设计简洁,具有高效的并发机制,以及强大的类型系统,这使得它在云计算、微服务和网络编程等领域广泛应用。标题"疯狂:...

    新开心学英语五年级下unitGoodhabitsPPT课件.pptx

    课件涵盖了不同的人物进行的不同日常活动,如"Gogo pack his schoolbag","Tony go hiking","Dad go sightseeing" 和 "Jenny go camping",这些都是孩子们可以理解和模仿的实例,有助于提高他们的语言运用能力。...

    人教版高中英语必修重点词汇、短语、句型、语法参考.doc

    【人教版高中英语必修课程】是针对中国高中学生设计的一套教学体系,其中包含了词汇、短语、句型和语法等多个方面的学习内容。在必修三的Unit1 Festivals around the world中,学生将深入学习关于全球节日的知识,并...

    初中英语 语法梳理及练习 连词

    【初中英语语法梳理及练习:连词】 在学习英语语法时,连词是一个重要的组成部分,它们在句子中起到连接的作用,使得表达更加清晰流畅。连词分为两类:并列连词和从属连词。 1. **并列连词**: 并列连词用于连接...

    五年级英语作文开心的一天IHaveAGreatDay

    9. **拍照动作**:“take many pictures”这个动作是现代生活中的常见活动,让学生了解如何用英语表达这一日常行为,增强语言的实用性。 10. **总结性句子**:“Today I have a great day”是对一天经历的总结,...

    开心版四年级下册小学英语 Unit4 Free time同步检测课时作业(一课一练).doc

    知识点2:在Free Time中,学生需要学习各种活动的语言表达,如go to the zoo、listen to a song、watch TV等。 三、英语基本句子的应用 在检测中,我们可以看到许多英语基本句子的应用,如“What do you do in ...

    (人)版七年级英语下册重点短语总汇语法总结.doc

    【人教版七年级英语下册重点短语与语法总结】 在学习七年级英语时,掌握好基础的短语和语法至关重要。以下是根据教材内容整理的一些关键知识点: **一、重要短语** 1. **be from**: 表示“来自”,同义词为come ...

    Module9PeopleandplacesUnit3导学案.doc

    本导学案主要关注的是Module 9 "People and places" Unit 3 "Language in use",这是英语课程中一个重要的语言实践环节。这个单元的学习目标是让学生能够使用现在进行时态来描述事件的发生,并掌握特定的词汇和短语...

    2015秋七年级英语上册Unit5Let’scelebrateGrammar导学案2无答案新版牛津版

    本材料主要涉及的是七年级英语上册Unit5 "Let's celebrate" 的语法部分,主要学习目标包括掌握特殊疑问词的使用,并通过实际情境对话进行练习。以下是相关知识点的详细说明: 1. 特殊疑问词:在本单元中,学生需要...

    外研版初中英语语法总结.doc

    【外研版初中英语语法总结】 1. 动词短语与搭配: - `agree with sb`:表示同意某人的观点或建议。 - `visit to…`:表示参观某个地点,如`visit to the museum`(参观博物馆)。 - `(感官动词)+do`:例如`see, ...

    人教版七年级英语(下册)重点短语总汇,语法总结.doc

    【人教版七年级英语(下册)重点短语与语法总结】 这是一份针对人教版初中一年级下学期英语课程的重要知识点汇总,涵盖了词汇、句型和日常交际用语等多个方面,旨在帮助学生巩固和掌握英语基础。 一、重点短语 1. ...

Global site tag (gtag.js) - Google Analytics