zoukankan      html  css  js  c++  java
  • 别致的语言GO(GO语言初涉)

    最近由于各种原因(好吧,其实是犯懒)已经许久没有再写新的博文了!最近正好在学习一门新的语言,所以正好记录一下自己的学习成果!最近利用每天晚上下班回来后的几小时,学习了Google开发的Go语言,算是对其有了个基本的了解。确实是一门漂亮别致的语言。

    首先go语言:是谷歌2009年11月10日推出的一种全新的编程语言,它可以在不损失应用程序性能的情况下降低代码的复杂性。它的主要特点有:简洁 快速 安全 并行 有趣 开源 支持泛型编程,内存管理,数组安全,编译迅速等!并且,它是一门静态,编译型的语言!是一种通用型的语言,可以用来开发任何软件——从普通应用到系统编程。虽然这种语言还不成熟,各种语言特征和规格还在变化,但程序员如今已经用它来开发工作了。

    详细来说,它的设计目标有如下几点(来自wikipedia和golang FAQ):

    • 安全:类型安全与内存安全。没有继承,无需处理类型的依赖关系,弱化类型的使用;变量默认初始化,简化设计负担。

    • 并发和通信的支持。内建的并发机制使得多线程编程变得非常简单;内建的chan(channel)类型简化了线程间通讯。

    • 完全的内存垃圾回收机制。

    • 高速编译。没有头文件、Makefile等复杂的工程依赖关系,使得编译速度更快,工程更容易组织。

    优势:

    1.它是系统级别的语言,静态编译,是C系列语言。

    2.具有很多内置库,使用起来和Python很类似。

    3.语法足够简单,入门学习成本很低,适合PHP和Python切换过来的人。

    4.速度快,就拿简单的页面来说,用PHP开发并发能够达到500很好了,但是用Go轻松就到上万,这是无法比拟的性能提升,而且用Go开发的效率和PHP差不多。

    5.出自Google之手,而且有一帮牛人在维护,基于BSD开源,社区活跃。

    6.它的语法简洁,一切为程序人员服务,降低程序开发成本!

    缺点:

    1.有些库不成熟,例如图像处理。

    2.cgo在Window系统下面编译很麻烦,就拿SQLite的数据库驱动来说,在Window下面编译就会遇到很大的麻烦等。

    以上是对go语言的一些简介,如题所述,我之所以说它是一门别致的语言,主要是它语法上的一些简化,对比传统语言如:C类型语言,来说显得非常简介独特!整个语言整体上感觉比较易学,当然学一门新语言其实是比较有难度的,但是难度并非来自于语言本身,而是对于整个计算机基础知识,已经编程相关知识的学习理解!

    首页是它对于包的引入:

    //可以直接引入
    import "fmt"
    import "flag"
    
    //也可以这样
    import (
        "fmt"
        "time"
        "flag"
    )
    
    //同时能给引入的包起个别名
    import(
        f "fmt"
        t "time"
    )
    
    //还可以用.省略在程序中直接调用包内方法,无需带上包名
    import(
        . "fmt"
    )
    
    //而且可以用_表示只引入包内的init()函数
    import(
        _ "github.com/go-sql-driver/mysql"
    )

    go中的if/for等流程控制语句是这样的:

    if a > 10 {
        ...
    }
    for i, j := 0, 10; i < j; i++ {
        ...
    }

    它们在for,if等关键字到左大括号之间的语言,并不需要小括号(),并且在语法上强制要求左大括号必须跟前面的语句在同一行!(是不是有点奇怪)

    当然还有变量的定义:

    //可以这样定义变量
    var a int
    var b string
     
    //也可以这样
    var a, b, c int = 1, 2, 3
    
    //还可以这样
    var(
        a int = 1
        b string = ""
    )
    
    //不仅如此,我还可以不声明类型,而是由值来推导变量的类型
    var a = 2
     
    //而且在函数内部,还可以这样定义变量
    a := 1
    c, d, e := 1, 2, 3

    函数的定义:

    //使用func关键字定义函数
    func getName(name string) (prople string){
        prople := name
        return prople
    }
    
    //函数还可返回两个值
    func getData(num int) (data, err) {
        data, err := num + 10
        return data, err
    }

    从上面可以看出go语言的一些不同,和语法的简洁,在学习之中,慢慢的会让你爱上它,它是如此的与众不同,简洁,别致!

    当然它的不同还不只是这些,还有比如type类型,interface接口,count常量的定义,数组,slice切片,map数组,goroutine协程,channel通道等等其他许多不同的特性,这些会在以后的博文了意义为大家介绍,这里就暂且不多说了!感谢大家的阅读!

    本文由平凡公子原创发布,欢迎阅读及转载!

  • 相关阅读:
    147
    寻宝
    将军鬼上身啦!
    洛谷P2762 太空飞行计划问题 网络流
    洛谷P3376 【模板】网络最大流
    洛谷P2375 [NOI2014]动物园
    洛谷P2672 推销员
    洛谷P1878 舞蹈课 贪心 堆
    洛谷P3375 【模板】KMP字符串匹配 kmp模板
    洛谷P2906 [USACO08OPEN]牛的街区Cow Neighborhoods
  • 原文地址:https://www.cnblogs.com/xjser/p/4962956.html
Copyright © 2011-2022 走看看