zoukankan      html  css  js  c++  java
  • Go学习笔记

    简单的go代码优雅地解决棘手的并发问题

    go 语言代码包 :
    fmt 字符串格式化包
    flag 接受和解析命令参数包
    log 日志输出包,log.Fatal(); 输出致命错误
    net/http 网络编程之http包

    疑问:
    形式参数: r *http.Request
    asta 人名
    xie 谢孟军 beego作者,goweb编程作者

    Beego 构建完整的web项目

    精彩评论:
    go 简洁 高效

    1. 语言层面,组合代替继承,接口实现无需申明
    2. groutine 简洁优雅
    3. 编译速度快,跨平台
    4. 适合团队协、后台高并发服务,唯一缺点也算是平台定位吧,就是有GC

    语言层面支持并发、丰富的标准库,内置强大的工具
    go语言在服务器编程、分布式系统、数据库里面作用很大,可以做底层到前端的任何工作,docker就是go写的

    GOROOT : GO语言安装的安装路径
    GOPATH : 若干工作区目录的路径。是我们自己定义的工作空间
    GOBIN : GO程序生成的可执行文件(executable file)的路径

    面试题: 设置GOPATH有什么意义吗?
    GOPATH 全局GOPATH,项目GOPATH
    多个工程 http://c.biancheng.net/view/88.html

    GOPATH GO的工作区workspace ,需要利用工作区,去放置go语言的源码文件source file,以及安装install后的归档文件和可执行文件
    source file 源码文件
    archive file 归档文件
    executable file 可执行文件

    命令源码
    包源码

    可执行命令必须使用package main

    包名: 使用目录文件名

    新接触的go命令:
    go run
    go test 测试代码
    go get 获取远程代码包

    go 基本语法

    1. 变量声明 常量声明
      变量命令小写,常量命令首字符大写

    2. 函数声明

    3. 基本类型

    bool
    string
    int 整形 int8 ...
    uint 无符号整形 unit8 ...

    byte unit8 的别名
    rune int32 的别名

    float32 float64
    complex64 complex128

    go语言中不同的数据类型项之间赋值时需要显式转换

    fmt.Printf()
    %T 数据类型
    %v 原始值
    %q 字符串值
    %s 字符串值

    指针
    结构体 struct 就是一组字段field
    结构体指针 可读性是真的差了
    数组

    T类型? 自定义的类型(结构体的名字,数字的名字)

    数组 大小固定、不能改变
    切片 切片为数组元素提供动态的大小的、灵活的视角,切片比数组更常用
    4. 流程控制语句
    5. 方法和接口
    方法即函数,方法只是个带接受者参数的函数

    方法参数的接收者
    直接接收者
    指针接收者
    由于方法经常需要修改它的接收者,指正接受者比直接接收者更常用

    • 是go语言里面的指针操作符
      & 操作符是指定指针的引用

    接口类型: 是由一组方法签名定义的集合
    现在被指针、方法、接口搞得有点晕
    目前看来,这可读性真的是差了

    空接口,用来传递不确定的参数类型,或者不确定的参数个数
    6. 类型断言
    7. 内置接口
    8. 并发 goroutine 是由Go运行时管理的轻量级线程
    sync go线程同步,一般不使用,而是使用信道来共享内存的
    信道:信道是带有类型的管道,你可以通过它用信道操作符 <- 来发送或者接收值。
    信道操作符 <- 箭头就是数据流的方向 

    1. GO web 编程,
      实现、简单的用户的CRUD,登录态保存....

    对go大概 有了一个了解,现在就是怎么应用和熟悉?
    写demo
    写应用
    写点web编程相关的吧

    Python 是一种广泛使用的解释型,高级编程,通用型编程语言
    Go 是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言
    PHP 是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用

    Go撰写风格:

    1. 每行结束不需要写分号;
    2. if/for 循环不需要以小括号包括起来

    go 有内置的gofmt工具,能够自动整理代码多余的空白、变量名称对齐,并将对齐空格转换成Tab

    go适合做什么,为什么那么多人偏爱他 https://blog.csdn.net/m0_37125796/article/details/85019155

    ============================================================
    两种源码文件: 命令源码文件,库源码文件
    go build构建 库源码文件操作的结果会放到临时目录 GOCACHE=C:UsersAdministratorAppDataLocalgo-build,命令源码文件操作的结果会放到源码文件所在的目录。构建的注意意义在于检查和验证。
    go install 安装: 库源码文件结果文件放到工作区的pkg目录下,命令源码文件结果文件放到bin目录下

    go build -x -n -v -a

    go的指针可读性差,注意看应用的场景怎么样
    T type 类型

    go 的内置包
    fmt format fmt 格式化输出
    pkg package

    程序的包申明一定要与父级目录的名称一致。
    名称首字母为大写的程序石头才可以被当前包外的代码引用,否则只能被当前包内的其它代码引用
    库源码文件
    命令源码文件

    =========================================================================================================

  • 相关阅读:
    python使用subprocess及delegator调用第三方程序
    CentOS安装配置nginx-rtmp-module(同时支持IPv4和IPv6)
    npm和cnpm安装(for windows)
    MySQL中pymysql的具体操作
    浅谈Red Hat和 Centos7
    [致]Markdown新手指南
    python面试题
    VB使用ADO中recordeset.delete删除数据记录问题
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6位运算
  • 原文地址:https://www.cnblogs.com/zqsb/p/11038912.html
Copyright © 2011-2022 走看看