Golang笔记之基本数据类型

1、布尔类型布尔类型用于表示真假,类型名为bool,只有两个值true和false,占用一个字节宽度,零值为false var flag bool = true flag1 := false fmt.Println(flag,flag1)常用操作逻辑运算: 与(&&) 只有左、右表达式结果都为true,运算结果为truefmt.Println(flag&&true,flag1&&true) PS D:\goProject\day01> go run bool.go true false逻辑运算:...阅读全文

51CTO博客 2021-03-21 15:46:51 元婴期

Golang 高效的原地数组去重

非排序数组使用 struct{} 节省空间, 指定 cap=len(arr) 避免 map 扩容。记录非重复元素索引 j,将元素前移,原地去重,只需一次遍历。时间复杂度:O(n)空间复杂度:O(n)func removeDuplication_map(arr []string) []string { set := make(map[string]struct{}, len(arr)) j := 0 for _, v := range arr { _, ok := set[v] if ok { c...阅读全文

Segmentfault 2021-03-24 18:32:33 无风

Golang笔记之基本组成元素

一、基本组成元素1.1、标识符标识符是编程时所使用的名字,用于给变量、常量、函数、类型、接口、包名等进行命名,以建立名称和使用之间的联系。标识符命名规则:只能由非空字母(Unicode)、数字、下划线(_)组成只能以字母或下划线开头不能使用Go语言关键字避免使用Go语言预定义标识符标识符区别大小写建议使用驼峰式 Go语言提供一些预先定义的标识符用来表示内置的常量、类型、函数。在自定义标识符时应避免使用:1. 内置常量:true、false、nil、iota2. 内置类型:bool、byte、ru...阅读全文

51CTO博客 2021-03-21 12:04:06 元婴期

手撸golang GO与微服务 聚合模式之1

手撸golang GO与微服务 聚合模式缘起最近阅读 [Go微服务实战] (刘金亮, 2021.1)本系列笔记拟采用golang练习之聚合模式DDD中有两个非常重要的模式:聚合(Aggregate)和聚合根(AggregateRoot)。 聚合是对概念上属于同一实体(entity)或值对象(value object)的封装。 而聚合根的含义是指,任何对该聚合的访问都仅到达聚合根。 比如Car就是聚合根,虽然Car有轮胎、车灯, 但是显然外部访问都只需要访问Car,聚合根确保了聚合的完整性。 聚合...阅读全文

Segmentfault 2021-03-24 11:32:33 ioly

一文看懂Web后端开发

一文看懂Web后端开发 前言 由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么才是后端开发。 定义 后端开发(Back-End Development,也称服务端开发、服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称为后端,即在服务器上运行的、不涉及用户界面的部分)的过程,是Web应用程序开发的一部分。后端开发者使用Java、Golang等语言...阅读全文

简书 2021-03-21 05:32:37 __江文__

手撸golang GO与微服务 聚合模式

手撸golang GO与微服务 聚合模式 缘起 最近阅读<<Go微服务实战>> (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 聚合模式 DDD中有两个非常重要的模式:聚合(Aggregate)和聚合根(AggregateRoot)。 聚合是对概念上属于同一实体(entity)或值对象(value object)的封装。 而聚合根的含义是指,任何对该聚合的访问都仅到达聚合根。 比如Car就是聚合根,虽然Car有轮胎、车灯, 但是显然外部访问都只需要访问Car,聚合根确保了聚合的完...阅读全文

简书 2021-03-21 05:32:37 老罗话编程

session、cookie等相关基本概念

什么是session?什么是cookie? session是解决HTTP协议无状态的问题的,是一种服务端解决方案,它能让服务端和客户端,一系列的交互动作变成一个完整的事务,能使这个网站变成真正意义上的面向客户端的一个web软件,session可以说是实现B/S架构软件的一个基础。 思考一个问题,既然HTTP是五状态的,那么服务器是怎么知道每个客户端是不同的呢?方法就是检查HTTP请求头,第一次收到请求的时候,检查有没有sessionId,如果没有会给它创建一个,如果有就取出来,当成身份的标识,现...阅读全文

简书 2021-03-20 23:32:48 大龄前端

Win10搭建Linux子系统

参考 系统 (一) Windows10安装Ubuntu子系统 在win10上也可以运行Linux了,详细操作教程送给你 Windows下搭建最接近Linux体验的开发环境——使用WSL(Linux子系统) 用WSL(Win10linux子系统)构建Golang的Windows和linux并存开发环境 1.控制面板 -> 程序 -> 选择启用或关闭Windows功能 -> 勾上 适用Linux的Windwos子系统 -> 确定 -> 重启电脑 image.png 2.在 设置 -> 更新和安全 -...阅读全文

简书 2021-03-20 23:32:47 合肥黑

2021-03-20:给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的子矩形数量。

2021-03-20:给定一个二维数组matrix,其中的值不是0就是1,返回全部由1组成的子矩形数量。 福大大 答案2021-03-20: 按行遍历二维数组,构造直方图。 单调栈,大压小。有代码。 代码用golang编写,代码如下: package main import "fmt" func main() { matrix := [][]int{ {1, 1, 1, 1, 1, 1}, } ret := numSubmat(matrix) fmt.Println(ret) } func nu...阅读全文

简书 2021-03-20 23:32:39 福大大架构师每日一题

05 Golang内置的运算符

1.算术运算符(与C一致) + - * / % / 除法注意:如果参与运算的数都是整数,那么结果会自动取整数 ++/-- 注意:在go中,++t和--是单独的语句,不是运算符,只能独立使用。错误写法如下: var i int = 8 a := i++//错误,i++只能独立使用,不能和赋值运算符并用 ++和--没有前置写法,错误写法如下: var i int = 1 ++i//错误,在golang中没有前置++,只能写成i++ 正确写法 var a = 12 a++ a-- fmt.Printl...阅读全文

简书 2021-03-20 23:32:38 learninginto

Golang VS Python:谁更优秀

Golang和Python的性能孰优孰劣,在开发者和最终用户中间总有着一些起争议的话题。一个互联网企业要提供好的服务,并且它能够迅速而高效地完成工作,这就是Golang与Python的问题出现的原因。每个IT企业的每一个方面都依赖于其技术备份、数据安全、***检测、***和存储等技术,这只是企业开发人员需要处理的几个问题中的一部分。鉴于这种情况,大多数企业更倾向于外包自己的IT服务,以便专注于自己最擅长的事情。然而大多数高级管理人员忽视了极端重要的是监督IT服务公司用于开发Web应用程序,数据分...阅读全文

51CTO博客 2021-03-20 10:04:53 mob604756f09529

PHP VS Golang,是一个艰难选择吗?

PHP vs Golang 的确是一个艰难的比较。PHP最早创建于1994年,时至今天已经24年。自那时起,因为PHP的开源方式,易用性以及稳定性,使PHP的知名度不断提高。然而,正如生活中的所发生的那样,如果老人不能适应现代社会,那么老人必须为新事物让路。即使是最新版本的PHP,比如PHP7,在安全性、可伸缩性、并发性等方面仍有很多不足之处。随着时代的变迁,应用程序的需求也在不断变化。开发语言的快速部署,并发、可扩展、零缺陷、低成本维护和经济高效是当今的需求。Golang一再证明自己是企业应用...阅读全文

51CTO博客 2021-03-20 09:50:27 mob604756f09529

汇编分析golang循环

平台开发 360云计算 女主宣言今天小编为大家分享一篇关于Golang循环汇编分析的文章,文章中介绍了golang循环的汇编层面的处理,通过分析,我们可以更了解循环的实现。希望能对大家有所帮助。PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!循环是编程中很强大的一个概念,而且非常容易处理。但是,必须将其翻译成机器可理解的基本指令。它的编译方式也可能影响标准库中的其他组件。让我们开始分析一下范围循环。1循环汇编范围循环可以迭代数组,切片或通道。下面函数展示了,对分片进行循环...阅读全文

51CTO博客 2021-03-20 07:00:44 mob604756f04b77

Go实现ORM及构建查询

平台开发 360云计算 女主宣言最近,作者一直在研究各种与数据库轻松交互的解决方案。我对数据库的操作主要是使用的 sqlx,它使得将数据库中的数据解组到 structs 非常容易。你可以编写SQL查询,使用 db 标记 struct,然后让 sqlx 处理其余的操作。然而,我遇到的主要问题是惯用查询构建。这让我开始研究这个问题,并在本篇文章中写下我的一些想法。PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!1GORM,分层复杂性及ActiveRecord模式很多的Go开发...阅读全文

51CTO博客 2021-03-20 13:59:24 mob604756f04b77

用 Go 构建一个 SQL 解析器

平台开发 360云计算 女主宣言在本文中,小编将向大家简单介绍如何在 Go 中构造 LL(1) 解析器,并应用于解析SQL查询。希望大家能用 Go 对简单的解析器算法有一个了解和简单应用。PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!摘要本文旨在简单介绍如何在 Go 中构造 LL(1) 解析器,在本例中用于解析SQL查询。为了简单起见,我们将处理子选择、函数、复杂嵌套表达式和所有 SQL 风格都支持的其他特性。这些特性与我们将要使用的策略紧密相关。1分钟理论一个解析器包...阅读全文

51CTO博客 2021-03-20 18:57:35 mob604756f04b77

300行Go代码玩转RPC

平台开发 360云计算 女主宣言最近,小编一直在研究RPC的原理及实现方式。在本篇文章中将通过用300行纯Golang编写简单的RPC框架来解释RPC。希望能帮助大家梳理RPC相关知识点。PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!我们通过从头开始在Golang中构建一个简单的RPC框架来学习RPC基础构成。1什么是RPC简单地说,服务A想调用服务B的函数。但是这两个服务不在同一个内存空间中。所以不能直接调用它。因此,为了实现这个调用,我们需要表达如何调用以及如何通过...阅读全文

51CTO博客 2021-03-20 13:55:49 mob604756f04b77

300行Go代码玩转RPC

平台开发 360云计算 女主宣言最近,小编一直在研究RPC的原理及实现方式。在本篇文章中将通过用300行纯Golang编写简单的RPC框架来解释RPC。希望能帮助大家梳理RPC相关知识点。PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!我们通过从头开始在Golang中构建一个简单的RPC框架来学习RPC基础构成。1什么是RPC简单地说,服务A想调用服务B的函数。但是这两个服务不在同一个内存空间中。所以不能直接调用它。因此,为了实现这个调用,我们需要表达如何调用以及如何通过...阅读全文

51CTO博客 2021-03-20 13:55:44 mob604756f04b77