使用go语言后的感受

jussue · · 3658 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

  前两天我说过为了学习go语言去学习了一遍python,当我完成了python的学习后,昨天中午就去学习了go语言。以下简称之为golang。

  我用的操作系统是windows xp,golang对xp还提供支持,但是我在学习python3时,3.5版本的python已经不给xp提供支持了。我在http://gobyexample.com学习了golang的相关代码,我不知道里面的语法全不全。其次,golang的本质是一种静态类型的语言,但它在编写时又可以写成动态类型语言的声明,这可以说是一次静态语言的革命。

  下面我来谈谈我对golang的感受。

  第一,我感觉golang的语法确实像python,使用起来令人感觉舒适,方便快捷。例如:

// 声明 --类python
a := 10    // a在编译时刻会被自动转换成int类型

// 语法  -- 类C
for i := 0; i < 10; i++ {
    // do something here
}

  第二,golang的自由度高、代码简洁,例如:

// 声明一个int类型的变量有3种方法
var v = 10
var v int = 10
v := 10

// 声明一个常量则有2种方法
const v = 10
const v int = 10

// 循环的用法 -- for就行了
for True {
    // 类似C中的while循环
}
for {
    // 上例的 for True缩写版
}
for i := 0; i < 10; i++ {
    // 类似C中的for循环
}

 

  第三,我认为golang语言的目的性不强,严格的说是一个令人感到乱糟糟的语言,看下列代码:

 

// golang循环示例
for i := 0; i < 10; i++ {
}

/*
 * 初看到上面的代码,令我们觉得没有什么不对的,但是学习之后,才会知道端倪。
 * 问题1、其中的 i++不能改成++i,golang中不支持++i这样的操作符
 * 问题2、大分号不能另起一行
 * 问题3、若循环中只有一行代码,"{" 、"}"不能不写
 */

// golang简单示 do while循环示例 -- 用for 实现
var i = 0
for {
    // do something there
    if i >= 10 {
        break
    }
    i++
}

/*
 * 与上面的说法一样,不学时不知道水有多深
 * 问题1、支持i++操作符但是不支持写成这样 if i++ > 10
 * 问题2、不如do while循环简洁、好看
 */

  以上的例子说明了golang又还是一个自由的语言!不仅如此,golang还不能容纳多余的语句:

pacakge main

import "fmt"
import "math"

func main() {
    var i int = 9
    var j int = 10
    fmt.Println(i)
}

/*
*  编译时报错:imported and not used: "j"
*  imported and not used: "math"
*  除此之外,golang还要变态地与packge xxx开头,而且main()函数中不能放置任一个参数和不能声明任何返回值和返回任何的值。
*/

  golang最终给我的感受是一团糟,至此,我认为golang虽然简洁,但它并不是一门优秀的编程语言。

 


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:jussue

查看原文:使用go语言后的感受

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3658 次点击  
加入收藏 微博
1 回复  |  直到 2000-01-01 00:00:00
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传