zoukankan      html  css  js  c++  java
  • go 语言入门

    go介绍

    #1 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言
    #2  解释型,编译型
    Go是静态(编译型)强类型语言,是区别于解析型语言的弱类型语言(静态:类型固定 强类型:不同类型不允许直接运算)。
    python动态强类型语言
    
    解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。
    
    编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行
    
    #3 哪些是编译,哪些是解释
    编译:java,c,c++,c#,go
    解析型:python,js,php...
    编译型语言涉及到跨平台,因为它需要编译成该平台的可执行文件,java--》运行在jvm之上
    go:跨平台编译,交叉编译,在windows平台编译出mac上可执行
    解释型:不存在跨平台问题,有解释器
    
    #4 特性
    跨平台的编译型语言,交叉编译
    管道(channel),切片(slice),并发(routine)
    有垃圾回收的机制
    支持面向对象和面向过程的编程模式(go的面向对象没有类的概念)
    
    # 5 发展(go是用c写起来的)
    2009年11月7日 weekly.2009-11-06 —— 早期的版本
    2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”。# 从此以后,自举,自己写自己
    2018年8月24日 go 1.11  :modules,包管理
    
    2020 年 8 月 go 1.15
    
    # Go语言应用
    中国的互联网公司,多多少少都会用,有些没用的,都在准备用
    ##### docker  k8s   蓝鲸 云计算  百度  小米:falcon
    ##### 七牛云 
    ## 应用领域,go适合做什么
    服务的开发,微服务开发,运维相关,区块链,云平台
    第一款开源区块链产品是用go写的
    
    # Go语言发展前景,为什么火
    
    很新,生态不完善
    完美契合当下高并发的互联网生态
    语法简单,速度快
    云计算和区块链的火,互联网企业高并发的需求

    go开发环境搭建

    #1  ide,集成开发环境(goland等同于pycharm)
        -goland(jetbrains全家桶),vscode
        -推荐用goland,pycharm,idea,androidstudio
        一路下一步
    #2 开发环境 sdk
    一路下一步
    # 测试安装成功
    go version  把版本打印出来就装成功了
    
    # 3注意事项(重点)
        -goland创建项目,选择go的安装路径(默认选中了)
        -gopath:所有的go代码必须放在这个路径下的src文件夹下,否则无法执行,默认创建到用户家目录下的go文件夹(mac,windows,linux)
           -创建项目路径,go文件都不要出现中文
     
    # 3 go命令
    
    # 必须记住的
    go env  # go的环境变量
        -GO111MODULE=空的,现在没有使用MODULE模式
        -GOPATH=C:Usersoldboygo #代码存放路径
        -GOROOT=c:go # go sdk安装路径
    go build  # 编译型语言,需要先编译再执行,编译成可执行文件,执行可执行文件
    go run  # 编译并执行,开发阶段用,两步并作一步
    
    # 其他不太需要记得
    go get # 下载并安装包和依赖等同于pip install
    go version
    go fmt #运行gofmt进行格式化(go fmt :自动将代码格式)

     hello world

    //go语言的注释
    //单行注释
    /*
    多行注释
    多行注释
     */
    
    
    // 重点
    //go(所有编译型语言)项目要运行,必须有一个入口
    //go的入口是main包下的main函数
    
    // main包下可不可以有多个main函数:不可以
    
    package main   //声明包名,包名是main,每一个go文件都属于某个包
    
    import "fmt"    //导入包,内置包
    
    func main() {   //定义了一个main函数,大括号包裹是函数体的内容
        fmt.Println("hello world") //打印函数等同与print()
    }
    
    
    
    // 编译
    go build s1.go
    // 执行
    s1.exe
    
    // 编译并执行
    go run s1.go
    // 在goland中,右键,运行即可
  • 相关阅读:
    nyoj 139 我排第几个--康拓展开
    树形dp--hdu 3534 Tree
    hdu 2196 Computer 树形dp模板题
    poj 2342 Anniversary party 简单树形dp
    hdu 4738 Caocao's Bridges 图--桥的判断模板
    poj 1144 Network 图的割顶判断模板
    poj 3159 Candies 差分约束
    poj 3169 Layout 差分约束模板题
    codeforces C. Triangle
    java中过滤器、监听器、拦截器的区别
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14886655.html
Copyright © 2011-2022 走看看