zoukankan      html  css  js  c++  java
  • 初识go

    一、什么是go

      Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

      罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go,,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在LinuxMac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。 

    二、go的特点

      1、自动垃圾回收
      2、丰富的内置类型
      3、函数多返回值
      4、匿名函数和闭包
      5、错误处理
      5、类型和接口:Go语言的类型定义直接沿袭了C语言的结构(struct),不支持继承和重载,而只是支持了最基本的类型组合功能;
      6、并发编程:引入goroutine概念
      7、UTF-8支持

    三、go的目录结构

    -- bin  (存放编译后生成的可执行文件)
    -- pkg  (存放编译后生成的包文件)
    -- src  (存放项目源码,src 可以存放多个项目源码)

    四、go 的基本命令

    go run [包名] : 直接运行程序,常在开发时使用
    go help [command] : 查看帮助文档
    go build [-o 输出名] [-i] [编译标记] [带有main的包] [-race 开启静态检测]   # 测试编译,检查是否有编译错误
    go get [包路径] :  获取远程包(需提前安装git)
    go install 编译包文件并编译整个程序
    go test:运行测试文件
    go doc 查看文档

    五、简单项目讲解

    go-test 已在GOPATH 中

    test.go

    package test
    
    import "fmt"
    
    var Num int
    
    func init(){
        Num =100
    }
    
    func Call(name string) {
        fmt.Println(name, "this is calculation")
    }

    main.go

    package main
    // 上面 是包名,表明我们是在main 包中

    // 导入需使用的包
    import (
    "day1/test"
    "fmt"
    )

    // 这是 main 函数 ,一个项目只能有一个main 函数

    func main() {
    fmt.Println("hello world")
    test.Call("jmz")
    fmt.Println(test.Num)
    /*

    结果:
    hello world
    jmz this is calculation
    100

    */
    }

     使用 go 命令编译一下,执行hello.exe(编译时要在go-test 目录下)

    cd go-test
    go build -o bin/hello.exe day1/main

    /*
    说明:
    bin/hello.exe 生成的路径 执行程序名 $gopath/bin/hello
    day1/main 是文件夹路径 $gopath/src/day/main
    day1/main 包中含有且只有一个main 函数
    */
    hello.exe

    结果

    详解

    1、第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
    
    2、下一行 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
    
    3、下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
    
    4"//"  是单行注释 '/**/' 是多行注释
    
    5、fmt.Println(...)  将字符串输入至终端,并在字符串的末尾添加n
    
    6、var Num int  变量的声明方式  var 关键字 Num 开头大写的变量 int 表明Num 是int 类型

    7、每条语句后面都无需添加";" 结束,因为在编译过程中编译器已将添加好了
  • 相关阅读:
    优化不易,且写且珍惜
    作为过来人的感悟:进了小公司的程序员如何翻身进入大公司
    腾讯/阿里/百度 BAT人才体系的职位层级、薪酬、晋升标准
    校招生向京东发起的“攻势”,做到他这样,你,也可以
    通过Java 线程堆栈进行性能瓶颈分析
    基于Spring Cloud的微服务落地
    多线程技术使用指南
    Android 处理含有EditText的Activity虚拟键盘
    Android ListView的监听事件
    Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
  • 原文地址:https://www.cnblogs.com/xiaobaiskill/p/10299546.html
Copyright © 2011-2022 走看看