学习一门语言,首先肯定是要熟悉他的语法,然后才可以进行编程开发,虽然本人使用过C++,.net等语言,不过对于GO的一些新特性还是需要多多熟悉,否则即使看得懂也写不出程序来。今天我们就开始我们的GO Hello World!

当我们新建一个GO MODULE,就会看到一个main.go,具体代码如下所示:

 package main

 import "fmt"

 func main() {
fmt.Printf("Hello, world!")
}

这个就是GO的Hello World程序,熟悉.NET程序的都知道,在.NET中以命名空间来区分不同的类型,组织代码,而在GO中,则使用package的形式来组织代码。在引用其他包时,如果没有特殊定义需要带上包名称。  

其中import一看就知道,.NET中的using,也可以指定包的别名。也可以省略包名称,需要使用"_"作为别名。因为每一个包都有一个默认的init函数,有时候引入的时候不调用里面的方法,只想执行init方法可以使用“.”来忽略。

当然每一个应用程序都有一个特定的入口即main,那个方法不返还任何值。声明方法使用func,在GO中使用结构来定义一个实体,使用type T struct格式。GO也是面向对象的,当然也具备面向对象的一些功能,例如重写,集成等等。在GO中另一个非常重要的就是接口,GO中的接口只能定义方法,而且只要有结构实现了接口中定义的方法就表明实现了这个接口,这个在开发过程中真的有点不适应。

在GO中大写字母开头的为全局对象,开一在包外部调用,小写的只能在包内部调用。我们再看一下代码,这样能够更好的理解其中的一些用法,代码如下:

 package main

 import (
"os"
"flag" // command line option parser
) var omitNewline = flag.Bool("n", false, "don't print final newline") const (
Space = " "
Newline = "\n"
) func main() {
flag.Parse() // Scans the arg list and sets up flags
var s string = ""
for i := 0; i < flag.NArg(); i++ {
if i > 0 {
s += Space
}
s += flag.Arg(i)
}
if !*omitNewline {
s += Newline
}
os.Stdout.WriteString(s)
}

在GO中声明变量和VB有点像,使用var声明变量,最后加类型,当然也可以使用使用“:=”格式来直接一步到位。声明常量使用const,枚举也使用这个,不过枚举的第一个值需要注明iota,这样代表下一个会根据第一个进行计算得到常量值。

type ByteSize float64
const (
_ = iota // ignore first value by assigning to blank identifier
KB ByteSize = 1<<(10*iota)
MB
GB
TB
PB
EB
ZB
YB
)

GO还有一个很大的优点就是函数可以返回多个值,也可以返回指定的值,这是一个相当好用的,不需要像.NET中那样,写很多个out。这一篇主要介绍一下GO的基础知识,下一篇我们将慢慢的进一步解读GO的编程方法,希望能够早点适应这种编写方法,熟悉他的标准库。  

[GO编程] GO入门语法基础的更多相关文章

  1. python运行以及入门语法基础

    pycharm下载与使用 1.pycharm官网下载(直接到pycharm下载地址) http://www.jetbrains.com/pycharm/download/#section=window ...

  2. C++ STL编程轻松入门基础

    C++ STL编程轻松入门基础 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL 1.2 追根溯源:STL的历史 1.3 千丝万缕的联系 1.4 STL的不同实现版本 2 牛刀小试 ...

  3. Python入门篇-基础语法

    Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...

  4. Swift语法基础入门三(函数, 闭包)

    Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...

  5. Swift语法基础入门四(构造函数, 懒加载)

    Swift语法基础入门四(构造函数, 懒加载) 存储属性 具备存储功能, 和OC中普通属性一样 // Swfit要求我们在创建对象时必须给所有的属性初始化 // 如果没办法保证在构造方法中初始化属性, ...

  6. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  7. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

  8. python基础入门一(语法基础)

    作为自己正式接触并应用的第一门编程语言,在Alex和武sir两位大王的要求下,开始了写博客总结的日子.学习编程语言是很有趣的一件事情,但有2点请一定要谨记:1.做人靠自己,码代码也必须靠自己.能不能成 ...

  9. C#语法基础和面向对象编程

    1.C#语法基础 http://www.cnblogs.com/tonney/archive/2011/03/16/1986456.html 2.C#与面向对象基础 很棒的资源,简明扼要,介绍的非常清 ...

随机推荐

  1. Sql Server 孤立用户解决办法

    Sql Server 孤立用户 是我们经常遇到的事情,今天详细的梳理了下,希望能帮到你 当把用户数据库从一台 Sql Server 使用备份和恢复的方式迁移到另一台服务器.数据库恢复以后,原先用户定义 ...

  2. 剑指offer题目31-40

    面试题31:连续字数组的最大和 public class Solution { public int FindGreatestSumOfSubArray(int[] array) { int len ...

  3. iOS(OC)中的冒泡排序

    NSMutableArray *array = [NSMutableArray arrayWithObjects:@"12",@"84", @"35& ...

  4. 0801 am使用tp框架对数据库增删改查

    增添数据,3种方法 function Text3() { $m=D("info"); //1.使用数组 $attr = array( "code"=>&q ...

  5. Java—继承、封装、抽象、多态

    类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...

  6. Lucene.Net+盘古分词器(详细介绍)(转)

    出处:http://www.cnblogs.com/magicchaiy/archive/2013/06/07/LuceneNet%E7%9B%98%E5%8F%A4%E5%88%86%E8%AF%8 ...

  7. onSaveInstanceState & onRestoreInstanceState

    一.onSaveInstanceState Called to retrieve per-instance state from an activity before being killed so ...

  8. umask函数

    umask函数为进程设置文件模式创建屏蔽字,并返回以前的值. #include <sys/stat.h> mode_t umask( mode_t cmask); 返回值:以前的文件模式创 ...

  9. asp.net 禁用按钮防止重复提交

    按钮设置 1.OnClientClick属性为”this.disabled=true;“ 2.UseSubmitBehavior属性为”false“ 举例如下: <asp:Button ID=& ...

  10. [转]moveTaskToback退后台

    http://blog.csdn.net/dacainiao007/article/details/17352367 方法:public boolean moveTaskToBack(boolean ...