zoukankan      html  css  js  c++  java
  • 不一样的go语言之入门篇-Hello World

      这是《不一样的go语言》的开篇之作,我尝试以java语言转变者的角度来聊一聊go语言。所以今天先从go语言的基础开始,即语法。

      学习一门新的编程语言,必从语法开始。但需要注意的是,对于一个有大量项目经验的程序员来说,可能看完语言介绍或者看完Hello World之后,就着急地想着上手写个小东东玩玩,比如写个简单的web服务。但是将一门新的语言应用到实际项目中需要的东西很多很多。诸如go语言的项目结构是怎么样的?有没有什么约定?用什么IDE?依赖是怎么管理的?项目是怎么构建的?是怎么发布的?如果带着这么多的思想负担去学习一门新语言,这个时间花费恐怕会得不偿失。

      因而我觉得回归本真最好不过。回到C语言的时代,面向过程、面向单文件编程。所以的代码放在一个文件里,使用命令行编译、运行。

      接下来的示例,就是go语言版的Hello World。新建文件main.go

    [eventer@localhost]# vi main.go
    

    然后敲入以下代码:

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello World!")
    }
    

      要编译、运行这段代码,需要安装go sdk。伟大的先驱者们,已经为我们开辟了绿色通道。sdk及官方文档都可以在go 语言中文网找到,目前go语言的最新版本是1.11。

      一个题外话,go语言从1.5版本开始实现自举(Bootstrap,用要编译的目标编程语言编写其编译器或汇编器),也就是用go语言写编译器,然后用来编译go语言写的代码。因此当你需要从go1.5的源码来构建go sdk的话,需要先下载安装go1.4或者使用gcc构建go1.4的源码,当你有go1.4的go编译器的时候,就可以用它来编译go1.5的源码,从而得到go语言版的编译器。

    go sdk: 下载链接

      下载安装之后,设置GOROOT环境变量为go sdk所在目录,然后设置一个工作目录的环境变量GOPATH,用于存放未来要用到第三方包及你的程序。

      至此,你可以使用以下命令编译、运行上面那段代码了。

    [eventer@localhost]# go run main.go
    

      波澜不惊,可是一个Hello World 能看出什么来呢?那还是让我们来看看各大语言的 Hello World 是长什么样的吧。

    Java版

    package com.eventer.test;
    
    import java.lang;
    
    public class Test {
        public static void main(String[] args) {
            System.out.Println("Hello World!");
        }
    }
    

    Python版

    print "Hello World!
    ";
    

    C语言版

    #include <stdio.h>
    
    void main() {
        printf("Hello World!
    ");
    }
    

    C++版

    #include <iostream>
    
    void main() {
        using namespace std;
        cout << "Hello World!
    ";
    }
    

    nodejs版

    console.log('Hello World!');
    

    C#版

    using System;
    
    public class HelloWorld
    {
        public static void Main()
        {
            Console.WriteLine("Hello World");
        }
    }
    

    Common Lisp 版

    (print "Hello World");
    

    Lua 版

    print "Hello World!/n"
    

      从这么来看,go没有更简洁也没有更复杂。所以确实从一个 Hello World 来看一门语言,真的看不出什么来。当然设计一门语言也不是从 Hello World 来开始设计的。可以得出结论,Hello World只是为了让你觉得写个 Hello World挺简单的,赶快麻利地搭建环境吧。

      下一篇将详细地讲述go语言更多地语法。

    参考文献

    Hello World来自哪里

    Lisp的本质

    请关注公众号

    不一样的go语言

  • 相关阅读:
    spring boot web开发使用kindeditor中调用地图功能的异常情况"此内容不能显示在一个框架中"
    mysql在spring+mybatis中出现value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp的几种种解决办法
    spring oauth2 的认证流程
    mingw32 QT环境在集成一些librtmp代码由于zlib出现的一些错误:undefined reference to `inflate'
    QT下c和c++混编问题
    产品与开发那些事
    Qt5.6 windows下vs2015(vs2012)编译ODBC
    转 2018 疯狂微服务之死
    Source Tree时免登录安装
    Win7系统下局域连接OPC配置
  • 原文地址:https://www.cnblogs.com/laud/p/go_helloworld.html
Copyright © 2011-2022 走看看