Go语言中文网 为您找到相关结果 168

电商设计手册之基础商品信息

前言 建议使用大屏设备(例如pad/pc),可以更好的浏览本篇文章 今天我们开始「商品系统」的篇章。本文分为如下五大模块: 需求分析 架构设计 Spu和Sku的故事 数据模型设计 接口设计 第一篇我们主要看看一个入门的电商平台(B2C)如何去构建自己的基础商品信息,其实这个事情很简单,想想我们的现实生活,商家摆放商品到货架,客户从货架挑选商品,客户把挑选好的商品放入购物车(篮),最后客户去收银台结账。 需求分析 对于一个电商平台来讲,我们怎么理解上面的简单示例呢?接着,我们来拆分上面这个简单的事情: 商家摆放商品到货架,客户从货架挑选商品,客户把挑选好的商品放入购物车(篮),最后客户去收银台结账 商家是谁:电商平台 摆放是什么意思:上架 货架在哪:前台系统(web/app/...) 挑选:浏...阅读全文

leetcode 第163场周赛

5263. 二维网格迁移 给你一个 n 行 m 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。 每次「迁移」操作将会引发下述活动: 位于 grid[i][j] 的元素将会移动到 grid[i][j + 1]。 位于 grid[i][m - 1] 的元素将会移动到 grid[i + 1][0]。 位于 grid[n - 1][m - 1] 的元素将会移动到 grid[0][0]。 请你返回 k 次迁移操作后最终得到的 二维网格。 拿golang刷题简直有病 执行结果:通过 执行用时 :32 ms, 在所有 golang 提交中击败了100.00%的用户 内存消耗 :6.2 MB, 在所有 golang 提交中击败了100.00%的用户 func pos(n int,...阅读全文

go 学习笔记之值得特别关注的基础语法有哪些

在上篇文章中,我们动手亲自编写了第一个 `Go` 语言版本的 `Hello World`,并且认识了 `Go` 语言中有意思的变量和不安分的常量. 相信通过上篇文章的斐波那契数列,你已经初步掌握了 `Go` 语言的变量和常量与其他主要的编程语言的异同,为了接下来更好的学习和掌握 `Go` 的基础语法,下面先简单回顾一下变量和常量相关知识. ## 有意思的变量和不安分的常量 - 变量默认初始化有零值 ```go func TestVariableZeroValue(t *testing.T) { var a int var s string // 0 t.Log(a, s) // 0 "" t.Logf("%d %q", a, s) } ``` > `int` 类型的变量初始化默认零值是零 `...阅读全文

博文 2019-08-24 17:12:39 snowdreams1006

Go语言小贴士2 - 协议解析

今天这个小贴士主要介绍协议解析的一些知识,Go语言作为服务端编程语言,免不了要涉及到通讯协议解析,即便不是做网络通讯,也难免会涉及到文件解析,其实它们的知识点都是一样的。 现实应用场景中,通讯协议按通常可以分为两类:二进制协议和文本协议。Go语言内置的gob格式就是一种二进制协议,而JSON、XML等则是文本协议。 假设我们要发送123这个数值,用二进制协议只需要一个字节,因为一个字节(byte)有8个二进制位(bit),2的8次方是256,一个字节可以表达0-255之间的任意值,共256种可能性。 如果我们用文本协议发送123这个数值,则需要至少三个字节,因为123这个数字需要转换成字符'1'、'2'、'3'这三个ASCII字符,存入三个字节中。 所以同样一个数据,用二进制协议表达的体积通...阅读全文

博文 2017-02-10 16:35:27 达达

go to definition 总是提示 rebuild fix 解决办法

刚拷贝来工程的时候,go to definition 总是报错误;然而编译也通过了;查了很多资料,自己解决了,解决方法如下:(1)把 options for target 配置下的 output里的 select folder for objects 选择目录下的文件全部删掉(2)把listing菜单栏的里的select folder for listing...和select folder for objects目录选择一样的目录然后在rebuild就可以成功了,如果不成功的小伙伴可以先确认你的文件路径有没有对,还不行可以在其他的地方重新复制一份执行在操作...阅读全文

博文 2019-04-28 14:35:10 我叫妄想

备战CKA每日一题——第8天 | initContainer概念、用法、使用场景简介;k8s secret env、volume考题引出

本活动在微信公众号【我的小碗汤】上举行,有送书活动!这里参与答题不能参与到送书活动哦! 昨日考题 提供一个pod的yaml,要求添加Init Container,Init Container的作用是创建一个空文件,pod的Containers判断文件是否存在,不存在则退出 注意:附带Pod完整yaml 昨日答案 apiVersion: v1 kind: Pod metadata: labels: run: cka-1126 name: cka-1126 spec: initContainers: - image: busybox name: init-c command: ['sh', '-c', 'touch /tmp/cka-1126'] volumeMounts: - name: wo...阅读全文

备战CKA每日一题——第4天 | 熟练掌握kubectl命令进行创建资源对象操作,并从源码进行解析

本活动在微信公众号【我的小碗汤】上举行,有送书活动!这里参与答题不能参与到送书活动哦! 昨日考题 通过单个命令创建一个deployment并暴露Service。deployment和Service名称为cka-1120,使用nginx镜像, deployment拥有2个pod 昨日答案 [root@liabio ~]# kubectl run cka-1120 --replicas 2 --expose=true --port=80 --image=nginx kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --g...阅读全文

备战CKA每日一题——第7天 | deployment的升级、回滚、滚动更新策略、roll、set image命令解释、initContainer考题

本活动在微信公众号【我的小碗汤】上举行,有送书活动!这里参与答题不能参与到送书活动哦! 昨日考题 通过命令行,创建1个deployment,副本数为3,镜像为nginx:latest。然后滚动升 级到nginx:1.9.1,再回滚到原来的版本 要求:Deployment的名称为cka-1125,贴出用到的相关命令。 最好附带创建的Deployment完整yaml,以及和升级回滚有关的命令。 昨日答案 先创建deployment,可以用命令创建: kubectl run cka-1125 --image=nginx --replicas=3 也可以用以下yaml:cka-1125.yaml创建 apiVersion: apps/v1 kind: Deployment metadata: lab...阅读全文

Go 之旅二: 流程控制语句

学习 A Tour of Go (中文参考 Go 之旅中文 ) 整理的笔记。介绍流程控制语句 for, if, else, switch 和 defer 的基本概念和使用。 1. for $GOPATH/src/go_note/gotour/flowcontrol/for.go 源码如下: /** * go 语言for 循环 */ package main import ( "fmt" ) func main() { sum := 0 for i := 0; i < 10; i ++ { sum += i } fmt.Println("sum:", sum) // sum: 45 // 初始化语句和后置语句是可选的 sum = 1 for ; sum < 1000; { sum ...阅读全文

博文 2017-03-10 05:50:23 xugang

A Tour of Go: Basics 2

For For语句有三个基本部分组成,以分号隔开: 初始语句:只在第一次循环开始前执行,通常就是变量定义和初始化,这里定义的变量作用范围只在For循环本身。 条件表达式:每一次循环开始前执行,当false结束循环。 post语句:每一次循环结束后执行。 技巧: 初始语句和post语句是可以省略的。 条件表达式也可以省略,就是死循环。 Go语言只有一个循环结构,就是for语句。while语句在Go中也是由for表示。 // for sum := 1 for ; sum < 1000; { sum += sum } // while sum := 1 for sum < 1000 { sum += sum } 注意点: 与其他语言不同,三个语句不需要用括号括起来。 循环体需要用大括号括起来。 I...阅读全文

博文 2018-10-07 22:35:14 zxdevops

go语言渐入佳境[5]-printf格式化打印

golang输出的格式化打印1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package mainimport "fmt"func main(){ //通用的格式 str:="jonson" fmt.Printf("%T,%v\n",str,str) //布尔 var booeanl = true fmt.Printf("%T,%t\n",booeanl,booeanl) //特殊字符 fmt.Printf("%%\n") fmt.Printf("\"\n") fmt.Printf("\\\n") //整数 fmt.Printf("%T,%d\n",123,...阅读全文

博文 2018-12-04 00:35:13 jonson_jackson

【Go学习笔记】 3、Go 类型与变量

基本类型 布尔型:bool 长度 : 1字节 取值范围:true ,false 整型:int/uint 根据运行平台可能为32位或64位 8位整型:int8/uint8 长度:1字节 取值范围:-128~127/0~255 字节型:byte (uint8别名) 16位整型:int16/unint16 长度:2字节 32位整型:int32(rune)/uint32 长度:4字节 64位整型:int64/uint64 长度:8字节 浮点型:float32/float64 长度:4/8字节 小数位:精确到7/15小数位 复数:complex64/complex128 长度:8/16字节 足够保存指针的32位或64位整数型:uintptr 其他值类型: array、struct、string 引用类...阅读全文

好程序员web前端分享:如何理解web语义化?

好程序员web前端分享:如何理解web语义化?首先,在理解之前,我们需要先了解,什么是语义化。所谓语义化,简单来说,就是能够更清晰,更直观的理解语言所要表达的含义,所谓词必达意就是这个意思。那么在开发过程中的语义化指的是什么呢?就是能够让除了当事开发者能快速熟悉代码之外,最主要的就是让机器更方便的读懂代码。 那么有得童鞋就要说了,想要让同事一目了然的读懂我们的代码,那么最方便的不应该是中文编程么?这里要说句,太天真了。我们的代码都是运行在计算机中,不论基于的环境如何;而计算机在进行各种运算的过程中,需要讲我们输入的文本转成特定的编码格式,如果使用英文编程,我们写出花来也不过26个字母,而中文的博大精深这里就不做赘述,况且各类编程语言的发明者都是歪果仁呢。 那么web语义化有何好处呢?首先语义...阅读全文

博文 2019-03-29 16:00:48 hcxy

Golang学习——如何判断Golang接口是否实现?

前言 在看一个底层库的的时候,看到了一个比较奇怪的写法,于是乎有了本文。 主要探讨两个问题: 1.利用编译来判断Golang接口是否实现 2.延伸出的make和new的区别 正文 1.利用new()来判断Golang接口是否实现 看了一个底层通用链接池的库,有这么一行代码: var _ Pooler = new(WeightedRoundRobin) 复制代码 需要解释的是:Pooler是一个接口类型。 type Pooler interface { // ... } 复制代码 刚开始看是疑惑的,为什么new了之后是要抛弃调? 后面发现这个是为了验证某某接口是否被实现了? 多看了一些代码后发现很多地方有类似这样的写法。 至此Get到了。 解释:如果说次接口没有被实现,那么一方面ide会有红横...阅读全文

博文 2020-05-03 00:34:22 相守之路

Golang Basic 2

Golang Basic 2 for Go 只有一种循环结构,for循环 基本的for循环由三部分组成,他们用分号隔开: 初始化语句:在第一次迭代前执行 条件表达式:在每次迭代前求值 后置语句:在每次迭代的结尾执行 初始化语句通常为一句短变量声明,该变量声明仅在for语句的作用域中可见。 一旦条件表达式的布尔值为false,循环迭代就会终止。 注意:和C、Java、JavaScript之类的语言不通,Go中的for语句后面的三个构成部分没有小括号,大括号{}则是必须的。 package main import "fmt" func main() { sum := 0 for i:=0; i < 10; i++ { sum += i } fmt.Println(sum) } 初始化语句和后置语...阅读全文

博文 2019-03-18 23:34:41 Wenchao

备战CKA每日一题——第3天 | 对接CSI存储知识

本活动在微信公众号【我的小碗汤】上举行,这里参与答题无效哦! 昨日考题 在Kubernetes PVC+PV体系下通过CSI实现的volume plugins动态创建pv到pv可被pod使用有哪些组件需要参与? A. PersistentVolumeController + CSI-Provisoner + CSI controller plugin B. AttachDetachController + CSI-Attacher + CSI controller plugin C. Kubelet + CSI node plugin 昨日答案 ABC 昨日解析 k8s中,利用PVC 描述Pod 所希望使用的持久化存储的大小,可读写权限等,一般由开发人员去创建;利用PV描述具体存储类型,存储...阅读全文

A Tour of Go: Basics 1

Packages, variables and functions Packages packages中,以大写字母开头的name是exported name,当import package时,只有exported name可以被从外部访问。 Functions 同type的连续参数可以只在最后指明type。函数可以有多个返回值。 func swap(x, y string) (string, string) { return y, x } Go支持有name的返回值: 函数定义时就定义好返回变量名,在函数内操作返回变量。 用naked return语句返回。 func split(sum int) (x, y int) { x = sum * 4 / 9 y = sum - x retur...阅读全文

博文 2018-10-07 17:35:15 zxdevops

【Golog】包

正文 package main import ( "fmt" "math/rand" ) import "math/cmplx" func main() { fmt.Printf("Now you have %g problems.\n", math.Sqrt(7)) } 这里这个头部有的这个package main有点像Java一样,这里的主函数入口func main()暂时没看到类型和返回值。 但是按照官网import支持两种方式一个是小括号,还有就是支持像python那样的一个一个import。感觉用小括号更好看吧。引入规则也是一样的可以引入包下的某部分如:math/rand。暂时不清楚能不能像c++一样指定自己在某个文件夹下的包。 可以看到这里的输出是类似c的那种输出形式。不知道有没...阅读全文

博文 2020-05-05 17:32:43 石渊友