zoukankan      html  css  js  c++  java
  • 初识GO语言

    GO语言是google的自行设计的一门语言

    Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

    诞生于著名的google 20%时间,主设计师是Rob Pike

    简单地说,GO语言像java一样易于开发,像C/C++一样高效(当然,这是他们的目标)

    GO语言的主页:http://golang.org/

    GO语言的编辑器:很多,我这里使用的IDEA,不过当然需要添加插件,添加的方法可以看这里:http://www.php100.com/html/itnews/it/2012/0831/10973.html

    如果你在IDE中不能下载插件的话,可以去这里下载http://plugins.jetbrains.com/plugin/5047?pr=idea_ce,然后在硬盘上安装。

    GO的语法

      GO的关键字和C几乎完全一直,所以懂C的人不用任何学习,就可以看懂GO的代码。

      但是而这之间的表述模式有着巨大的区别

          C中定义一个变量是这样的

          

    int a;
    int b = 0;

    同样在GO语言中,代码是这样的

    var a int
    var b int
    b = 0

    目前我还没有找到能够在定于变量的时候直接对其初始化的语法。知道的可以回复下,谢谢

    函数的定义是这样

    func add(a int , b int) int {
        return a + b
    }

    func 关键 参数 返回值

    可以看出C和GO的最大不同就是GO把类型的声明放在了最后。

    所以你可以定义一个匿名的函数

    sum = func(a int , b int) int {
            return a + b
        }(1, 3)

    不知道GO会不会支持lambda表达式,否则这样写太复杂了。

    Package关键字

    GO和java一样有着包的概念,含义和java差不多这里就不多说了

    import关键字

    GO和java、C#一样使用的import 而不是include,因为GO已经没有头文件的概念了

    最后给大家一个样例文件

     1 /**
     2  * Created with IntelliJ IDEA.
     3  * User: dothegod
     4  * Date: 13-12-7
     5  * Time: 上午11:46
     6  * To change this template use File | Settings | File Templates.
     7  */
     8 package main
     9 
    10 import "fmt"
    11 
    12 func add(a int , b int) int {
    13     return a + b
    14 }
    15 
    16 func main() {
    17     var x , y int
    18     x = 1
    19     y = 2
    20 
    21     var sum int
    22     sum = add(x, y)
    23     fmt.Printf("%d
    ", sum)
    24 
    25     sum = func(a int , b int) int {
    26         return a + b
    27     }(1, 3)
    28 
    29     fmt.Printf("%d
    ", sum)
    30 
    31     var p *int
    32     p = &x
    33     fmt.Printf("%d
    ", *p)
    34 
    35 
    36     fmt.Printf("Hello world!")
    37 }

    在IDEA中点击make就可以编译这个文件了,生成的文件在工程目录的out目录下,是个exe文件,可以直接执行。

  • 相关阅读:
    rabbitmq 学习10channel 说明
    ASP.NET中进行消息处理(MSMQ) 一
    ThreadLocal原理及用法详解
    设计模式责任链模式
    枚举详解之EnumSet、EnumMap用法
    设计模式策略模式和工厂模式结合使用
    Java并发编程系列之CyclicBarrier详解
    [解题报告]求平均成绩
    [解题报告]1005 Number Sequence
    [解题报告]1013Digital Roots
  • 原文地址:https://www.cnblogs.com/HighFun/p/3462682.html
Copyright © 2011-2022 走看看