当前位置: 首页 > wzjs >正文

妇幼能力建设网站某品牌休闲零食网站建设规划书

妇幼能力建设网站,某品牌休闲零食网站建设规划书,网络管理软件免费,公众号管理平台入口目录 golang 介绍 面向并发 面向组合 特点 项目结构 图示 入口文件 main.go 基本变量类型与声明 介绍 声明变量 常量 字符串(string) 字符串格式化 空接口类型 数组 切片 创建对象 追加元素 复制切片 map(映射) 创建对象 使用 多重赋值 控制流语句…

目录

golang

介绍

面向并发

面向组合 

特点

项目结构

图示

入口文件 main.go

基本变量类型与声明

介绍

声明变量

常量 

字符串(string)

字符串格式化

空接口类型 

数组

切片

创建对象

追加元素

复制切片

map(映射)

创建对象

使用

多重赋值

控制流语句

if else

循环

switch case语句


golang

介绍

Go(也叫 Golang)是由 Google 开发的开源编程语言,设计目标是简洁、效率和高并发

  • 自从 2009 年发布以来,Go 迅速发展,特别是在云计算、微服务、容器化(如 Docker 和 Kubernetes)等领域得到了广泛应用
  • Go 语言是一门面向并发面向组合的语言

面向并发

Go 的并发模型通过 goroutine 和 channel 来实现轻量级的并发

  • goroutine:Go 通过轻量级的线程——goroutine,支持并发编程,允许程序同时执行多个任务。Goroutines 的创建和切换成本非常低,比传统线程更高效
  • channel:Go 通过 channel 实现 goroutine 之间的通信,确保数据在并发环境中的安全传递。Go 使用 通信顺序进程(CSP)模型,通过管道(channel)将数据从一个 goroutine 传递到另一个

面向组合 

Go 语言的设计偏向 组合 而非 继承

  • 这使得 Go 在实现面向对象编程时,避免了传统oop中的类继承层次 (虽然它有一些支持面向对象编程的特性,但它并不遵循经典的面向对象范式)
  • 提供了结构体(struct)和接口(interface)来实现对象行为

特点

高性能高并发

  • 内置对高并发的支持,不需要寻找经过高性能优化的第三方库
  • 只需要应用标准库或基于标准库开发的第三方库即可

语法类似c语言,但是简化版,非常简洁

  • 去除了许多其他编程语言中常见的复杂特性

标准库功能丰富

  • 涵盖了从网络、加密到并发等多个方面的功能

工具链完善

  • 内置了单元测试框架

静态编译

  • 不需要附加其他东西,部署方便快捷

快速编译

  • 能快速构建并测试代码

跨平台

  • 开发和部署的过程非常简单

垃圾回收机制

  • 不需要考虑内存分配释放,类似java

项目结构

图示

入口文件 main.go

package main

  • 包声明
  • 每个 Go 程序都需要一个main包

import (" "...)

  • 导入语句
  • 这里的import语句导入了两个标准库:fmt,os

func main() { }

  • 主函数,程序的入口点

基本变量类型与声明

介绍

声明变量

var 变量名 = value

  • 自动根据值类型推导变量类型

或是显式写出类型:

  • var 变量名 类型 = value
  • 变量名 := 类型(value)

常量 

将声明变量时的var -> const

字符串(string)

go的内置类型

  • 字符串包 -- strings

可以对字符串直接使用运算符(优先级和c/c++类似)

  • 比如: +拼接

字符串格式化

Go 语言使用 fmt 包进行字符串格式化,可以根据需求灵活地控制输出格式

  • 可以使用%v代表任意类型的变量,而不需要区分数字/字符串...的区别
  • %+v 得到详细结构:
  • %#v 得到进一步详细的结构:
  • %T 打印变量的类型:

浮点数表示和c/c++相同

  • %f 标准浮点数格式
  • 且可以限制小数位数,比如%2f

空接口类型 

数组

var 数组名 [元素个数]元素类型

  • 支持多维数组
  • 使用上也没有变化,依然是[ ]

切片

可变长度的数组

创建对象

切片字面量创建切片:

  • slice := []元素类型{值1, 值2 ...}
  • 也可以是个空切片 -- emptySlice := make([]int, 0)

使用make创建切片:

  • make([]元素类型, 初始长度(必须指定), capacity)

从数组/其他切片中切割创建切片:

  • slice := arr[起始索引:结束索引]  (前闭后开区间)
追加元素

可以使用append()追加元素,根据需要动态扩展切片的容量

  • 一次可添加多个元素
  • 注意,append必须要赋值回原对象
复制切片

copy()用于从一个切片复制元素到另一个切片

  • 它不会改变原切片,但会返回实际复制的元素数量

直接复制:

索引复制:

  • 切片名(位置1:位置2) 前闭后开

省略位置参数:

  • 可以省略索引中的一些位置,代表从头取 / 取到尾 / 全部取

map(映射)

类似于其他语言中的哈希表或字典

  • 随机顺序存储,存储键值对
创建对象

字面量直接初始化:

  • mapVariable := map[key值类型]value类型{key1: value1, key2: value2, ...}

make创建:

  • make(map[key值类型]value类型, 初始容量(可省略))
使用

使用方法和c++中的map相同

  • 可以使用[ ]
  • delete()删除k-v对
多重赋值
  • 可以使用两个变量来接收value值 是否存在某key值(bool类型),可以检查一个键是否存在于映射中

控制流语句

if else

if else 语法基本不变

  • 只是不需要写if / else if后面的括号
  • 并且,if后面必须要加{ },而不能在只有一行语句的情况下写成同一行

循环

循环仅有for循环

  • 相当于其他循环被并入进去了
  • 语法并没有变化,只是和if else一样不需要加括号

无条件:

  • for {} 代表死循环

带条件:

  • for 循环条件 {}

带初始化和后处理:

  • 和c/c++语法一样,只是没有括号

同时,continue,break依然被使用

switch case语句

基本语法不变,只是:

  • switch后的变量不需要加( )
  • 每个case语句之间自动带有[添加break后]的效果 -- 它不会像c/c++一样如果不加break就一直执行下去,它只会执行其中一个分支

并且它还增加了功能

  • switch后可以不加变量,直接跳转到分支进行判断,可以代替多个if else嵌套体使用
http://www.dtcms.com/wzjs/590346.html

相关文章:

  • 还没做域名解析如何访问ftp的网站文件电脑上做免费网站教程视频
  • 天津网站建设wangzhii南宁做网站的有几家
  • 江苏强荣建设有限公司网站沈阳网络营销推广的公司
  • 室内设计网站哪些号网站模板出售
  • 家具技术支持东莞网站建设如何在wordpress中添加背景音乐
  • 游戏秒玩网站wordpress 蓝色企业主题
  • 做资讯网站怎么挣钱wordpress能赚钱
  • 绍兴网站网站建设api接口大全
  • 招聘网站如何做运营做网站注册页面模板
  • 网站建设的7个基本流程商业信息网站大全
  • 怎么制作网站视频播放器Wordpress修改览量点赞量
  • php音乐外链网站源码中铁建设集团有限公司中标项目
  • 做网站如何接单有什么网站可以接单做兼职的
  • 邯郸网站建设哪家好python做网站优势
  • 南通移动网站建设沈阳制作网站的公司
  • 鹤岗住房和城乡建设局网站wordpress用户批量注册
  • 一个公司可以做多少网站wordpress的json api
  • asp.net 新建网站建网站不花钱免费建站
  • flash网站建设教程视频石家庄定制网站建设服务
  • 有了php源码怎么做网站优秀软文营销案例
  • 网站首页页面设计模板淮南app
  • 西安知名的集团门户网站建设费用自贡企业网站建设
  • 南京佛搜做网站公司网站制作 php
  • 郑州网站外包哪家好wordpress数据库写文章
  • 中国小康建设官方网站信息手机网站模板下载
  • 企业门户网站建设 验收php开源网站
  • 团购营销型网站制作快速整站优化
  • 服务器硬件影响网站速度深圳北站网站建设
  • 网站建设歺首选金手指12课工场网站建设培训
  • 电子商务网站域名注册要求优化网站工具