Go是一门并发支持、垃圾回收的编译型系统编程语言。

特点:类型安全和内存安全

以非常直观和极低的方案实现高并发

高效的垃圾回收机制

快速编译

为多核计算机提供性能提升方案

Utf-8编码支持

Go源码安装

Go标准包安装

Go环境变量与工作目录

Go get 获取远程安装包

Go run 直接运行程序

Go build 测试编译,检查是否有编译错误

Go fmt 格式化源码

Go install 编译包文件并编译整个程序

Go test  运行测试文件

Go doc  查看文档

1、  go程序是通过package来组织的

只有package名称为main的包可以包含main函数

一个可执行程序有且仅有一个main包

通过 import关键字来导入其他非main包

通过const关键字来进行常量定义

通过在函数体外使用var关键字来进行全局变量的声明与赋值

通过type关键字来进行结构(struct)或接口(interface)的声明

通过func关键字来进行函数的声明

如果导入包之后未调用其中的函数或者类型将会报编译错误

当使用第三方包时,包名可能会非常接近或者相同,此时就可以使用别名来进行区别和调用

省略调用(不建议使用,易混淆。不可以和别名同时使用)

Go语言可以使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包调用。根据约定,函数首字母小写即为private  大写即为public

2、  类型与变量

布尔型 bool

整型  int/uint

字节型 byte(uint8别名)

浮点型  float32/float64

复数 complex64/complex128

其他值类型:array、struct、string

引用类型:slice、map、chan

接口类型:interface

函数类型:func

零值并不等于空值,二是当变量被声明为某种类型后的默认值。

单个变量的声明与赋值

多个变量的声明与赋值

全局变量的声明可使用var()的方式进行缩写

全局变量的声明不可以省略var,但可以使用并行方式

所有变量都可以使用类型推断

局部变量不可以使用var()简写,只能使用并行方式

变量的类型转换

Go中不存在隐式转换,所有类型转换必须显示声明

转换只能发生在两种相互兼容的类型之间

String()表示将数据转换成文本格式,因为计算机中存储的任何东西本质上都是数字,因此函数自然地认为我们需要的是用数字表示文本。

3、  常量与运算符

常量的值在编译时就已经确定

等号右侧必须是常量或者常量表达式

在定义常量组时,如果不提供初始值,则表示将使用上行的表达式

使用相同的表达式不代表具有相同的值

Iota是常量的计数器,从0开,组中每定义1个常量自动递增1

通过初始化规则与iota可以达到枚举的效果

每遇到一个const关键字,iota就会重置为0

4、  表单提交

net/http

5、  文件上传

2018年7月6日go语言学习的更多相关文章

  1. 2018年12月8日广州.NET微软技术俱乐部活动总结

    吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ...

  2. 2018年3月24日上海MVP线下技术交流活动简报

    2018年3月24日下午,几位上海MVP自发组织了一次线下的技术交流会,主要由MVP胡浩牵头,我(陈晴阳).刘鑫.朱兴亮和胡浩各自做了一次主题演讲,具体主题是: 陈晴阳:<这还是我认识的Visu ...

  3. WIN10 困扰多时的屏幕亮度 终于可以调节了-完美 -更新2018年2月28日

    总结:很多问题是自己认知不够造成的,  -- 问题解决在  修复经历二,可直接跳过去看  修复经历二. 首先看你屏幕亮度是集成还是独立显卡决定的(一般是集成),所以下面 修复经历一折腾独立显卡驱动没什 ...

  4. Android GreenDao 在组件化项目中的一个问题 - 2018年7月5日21:15:14

    组件化项目使用GreenDao时注意的事项: 1.要在组件化中的基础库(domain层)创建实体类: 2.如果sycn之后不能生产Dao文件,使用 Android Studio 的Gradle插件重新 ...

  5. HIMSS EMRAM新版标准将于2018年1月1日生效

    https://www.cn-healthcare.com/article/20170223/content-489862.html HIMSS EMRAM新版标准将于2018年1月1日生效 2017 ...

  6. Android构建项目时出现的小bug们(2018年5月19日19:31:20)

    问题详情 Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency ...

  7. RxJava2.0学习笔记2 2018年7月3日 周二

    摘记: 1.map -- 转换  有些服务端的接口设计,会在返回的数据外层包裹一些额外信息,这些信息对于调试很有用,但本地显示是用不到的.使用 map() 可以把外层的格式剥掉,只留下本地会用到的核心 ...

  8. IntelliJ IDEA 最新激活码(截止到2018年10月14日)

    IntelliJ IDEA 注册码: EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYX ...

  9. 导航狗IT周报-2018年05月27日

    原文链接:https://www.daohanggou.cn/2018/05/27/it-weekly-9/ 摘要: “灰袍技能圈子”将闭圈:物理安全:为什么我们现在的生活节奏越来越快? 技术干货 1 ...

随机推荐

  1. R语言学习——处理数据对象的实用函数

    length(object) # 显示对象中元素/成分的数量 dim(boject) # 显示某个对象的维度 str(object) # 显示某个对象的结构 class(object) # 显示某个对 ...

  2. CF438E The Child and Binary Tree 生成函数、多项式开根

    传送门 设生成函数\(C(x) = \sum\limits_{i=0}^\infty [\exists c_j = i]x^i\),答案数组为\(f_1 , f_2 , ..., f_m\),\(F( ...

  3. [第二届构建之法论坛] 预培训文档(Java版)

    本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的Java版本],需要实验者有一部分Java基础. 目录 Part0.背景 Part1.配置环境 配置JDK Linux 平 ...

  4. 个人hp笔记本默认设置更改

    1.将F1-F12默认的多媒体键(调静音亮度控制声音大小等)改为功能键: (****笔记本型号为惠普****) ·进入BIOS方法:关机状态下,按电源键开机,立刻连续多次点击ESC,看到 F1.F2. ...

  5. 时间插件--daterangepicker使用和配置详解

    1.序言: daterangepicker是Bootstrap的一个时间组件,使用很方便 用于选择日期范围的JavaScript组件. 设计用于Bootstrap CSS框架. 它最初是为了改善报表而 ...

  6. 4月11日java多线程4

    继昨天学习了线程池之后,今天学习了多线程内的锁Lock. 定义方法: ReentrantLock queueLock = new ReentrantLock(); //可重入锁 ReentrantRe ...

  7. [模板] 平衡树: Splay, 非旋Treap, 替罪羊树

    简介 二叉搜索树, 可以维护一个集合/序列, 同时维护节点的 \(size\), 因此可以支持 insert(v), delete(v), kth(p,k), rank(v)等操作. 另外, prev ...

  8. [模板] K-D Tree

    K-D Tree K-D Tree可以看作二叉搜索树的高维推广, 它的第 \(k\) 层以所有点的第 \(k\) 维作为关键字对点做出划分. 为了保证划分均匀, 可以以第 \(k\) 维排名在中间的节 ...

  9. centos6 mongodb 安装

    1. 下载MongoDB 官网下载地址 https://www.mongodb.com/download-center#community 下载地址 32位 http://dl.mongodb.org ...

  10. stop()在animate中的用法

    stop 是jQuery中用于控制页面动画效果的方法.运行之后立刻结束当前页面上的动画效果.stop在新版jQuery中添加了2个参数:第一个参数的意思是是否清空动画序列,也就是stop的是当前元素的 ...