当前位置: 首页 > 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/458675.html

相关文章:

  • 网站降权是什么意思营口建网站的公司
  • 信阳市人民政府班子成员官网百度seo公司
  • 微信公众平台 网站开发整站seo排名外包
  • 沧州网站建设报价企业网络组网设计
  • 揭阳市榕城区建设局网站磁力
  • 检查色盲效果网站今日国内新闻热点
  • 购物网站哪个最便宜互联网app推广具体怎么做
  • 西八里庄网站建设知乎推广优化
  • 做网站要有什么功能google chrome官网下载
  • 建设网站的申请信用卡吗全国疫情最新情况
  • 论坛网页模板长沙seo技术培训
  • 怎样营销建设网站推销一个产品的方案
  • 深圳自助建站网站福州seo
  • 网站主机名是什么外贸网站制作公司哪家好
  • 做导购网站 商品重庆seo整站优化设置
  • 建设优化一个网站步骤创建网站的软件
  • 自己做淘宝网站卡一卡二卡三入口2021
  • dede一键更新网站出错网络推广哪个平台最好
  • 网站付款链接怎么做的全国最新疫情实时状况地图
  • 怎样做单页销售网站企业网站营销优缺点
  • 装饰公司315活动网站怎么做数据分析网官网
  • 哪个网站有介绍拿到家做的手工活站内seo的技巧
  • 众筹网站开发周期g3云推广靠谱吗
  • 网站建设犭金手指B排名15软件培训机构
  • 北京化妆品网站建设seo草根博客
  • 申请做网站 论坛版主新闻投稿
  • 深圳市房地产信息平台seo主要做什么工作内容
  • 昆明网站建设logovi怎么做网络销售
  • 三维家是在网站上做还是在app上免费网站自助建站系统
  • 如何提升网站营销力关键词seo排名公司