SF
技术成长之路
技术成长之路
注册登录
关注博客
注册登录
主页
关于
RSS
json序列化和反序列化
杨旭
2019-06-26
阅读 4 分钟
8.2k
func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) 同Marshal,并且可以格式化
go语言——测试
杨旭
2019-06-26
阅读 8 分钟
2.9k
测试的目的是确认目标代码在给定的场景下,有没有按照期望工作 。一个场景是正向路经测试,就是在正常执行的情况下,保证代码不产生错误的测试。另外一些单元测试可能会测试负向路径的场景,保证代码不仅会产生错误,而且是预期的错误。总之,不管如何调用或者执行代码,所写的代码行为都是可预期的
包和包管理工具
杨旭
2019-06-26
阅读 10 分钟
2.9k
Go语言——包和包管理工具 1、包简介 1.1 工作空间 go语言的工作空间必须由 bin、pkg、src三个目录组成 {代码...} 可以在GOPATH环境变量中添加多个工作空间,但不能和GOROOT相同。通常go get使用第一个工作空间保存下载的第三方库 1.2 源文件 编码:源码⽂件必须是 UTF-8 格式,否则会导致编译器出错。 结束:语句以 ";" ...
17Go 语言——几个并发模式
杨旭
2019-06-24
阅读 16 分钟
2.6k
要想写出高效简单的并发程序,还需要了解下常用的 goroutine和channel以哪种方式写,下面介绍3种常用的并发模式,写出更简化高效的并发。
16 Go语言并发2——Channel
杨旭
2019-03-31
阅读 9 分钟
3.6k
channel 是一种架设在goroutine之间进行 通信的管道,类似队列。channel是引用类型,类型为chan,可以通过make关键字进行创建指定类型的channel。channel存在的意义是让goroutine通过通信来共享内存,一个往通道发送数据,一个从通道获取数据,来实现数据同步。
15 Go语言并发1——Goroutine
杨旭
2019-03-31
阅读 10 分钟
3.5k
进程:程序启动时(比如qq),操作系统位程序开启一个进程。可以把它看做是操作系统进行资源分配和调度的一个容器,里面包含了该应用程序用到的所有资源。
linux常用命令
杨旭
2019-03-26
阅读 4 分钟
2.2k
1、linux 目录结构 借用一张图,Linux 中,一切皆文件,所以,文件的根目录为/ centos 系统cd / 到根目录,ls ,查看所有文件如下: {代码...} 这么多目录,我们又不是运维没必要都知道。主要的目录为 / : 这个是系统的根目录,一般只存放目录,不存放文件 /bin : /user/bin: (binaries)存放二进制可执行文件。比如(ls,t...
linux 使用yum 安装mysql
杨旭
2019-03-26
阅读 5 分钟
3.2k
1、下载yum安装源 官网:[链接]如图,目前的版本已经到8了,我们先把yum源下载下来,并且导入到linux服务器目录下。 然后我们执行rpm -ivh mysql80-community-release-el7-2.noarch.rpm 当然还有一种方式,就是我们直接在线下载:直接安装自己需要的版本 {代码...} 2、修改yum源,设置版本(可选) yum repository 安装mys...
linux rpm方式安装jdk+mysql
杨旭
2019-03-26
阅读 6 分钟
2.8k
1、安装JDK 1.1查看当前linux是否安装java 安装之前先查看原linux 是否安装jdk , rpm -qa | grep -i java 如果没有就安装,如果有,就卸载 rpm -e --nodeps 要卸载的软件名 1.2 上传jdk到linux文件目录 我们一般把软件安装到/usr/local 下,这里我是创建了java文件夹,与java相关的放到这里了。 我装的是xshell工具,同...
14 Go语言——接口interface详解
杨旭
2019-03-19
阅读 10 分钟
7.8k
go语言中的duck typing并不是真正的duck typing,但是他是类似的概念,go语言接口的实现就可以看做为duck typing。举例:什么是鸭子?
13 Go语言——Struct 和Method
杨旭
2019-03-06
阅读 7 分钟
4.3k
使用 type <Name> struct{} 定义结构,名称遵循可见性规则 struct是值类型 可以使用字面值对结构进行初始化 支持匿名结构,和匿名字段 允许直接通过指针来读写结构成员 相同类型的成员可进行直接拷贝赋值,支持 == 与 !=比较运算符,但不支持 > 或 < 嵌入结构作为匿名字段看起来像继承,但不是继承 Go中的st...
12 Go语言map底层浅析
杨旭
2019-03-04
阅读 4 分钟
8.7k
笼统的来说,go的map底层是一个hash表,通过键值对进行映射。 键通过哈希函数生成哈希值,然后go底层的map数据结构就存储相应的hash值,进行索引,最终是在底层使用的数组存储key,和value。稍微详细的说,就设计到go map 的结构。hmap 和bmap。
11 Go语言的映射——map
杨旭
2019-03-04
阅读 4 分钟
2.3k
类似其它语言中的哈希表或者字典,以key-value形式存储数据 Key必须是支持==或!=比较运算的类型,不可以是函数、map或slice;value 可以是任意类型。 Map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍 Map使用make()创 建,支持 := 这种简写方式 make(map[keyType]valueType, cap),cap表示容量,可省略 超...
10Go语言——slice
杨旭
2019-03-01
阅读 9 分钟
2k
切片是一种数据结构,这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append 来实现的。这个函数可以快速且高效地增长切片。还可以通过对切片再次切片来缩小一个切片的大小。因为切片的底层内存也是在连续块中分配的,所以切片还能获得索...
09Go语言——数组array
杨旭
2019-03-01
阅读 3 分钟
1.7k
数组⻓度必须是常量,且是类型的组成部分。 [2]int 和 [3]int 是不同类型。 ⽀持 "=="、 "!=" 操作符,因为内存总是被初始化过的。 指针数组 [n]T,数组指针 [n]T。 可以使用new来创建数组,此方法返回一个指向数组的指针 数组是值类型,赋值和传参会复制整个数组,而不是指针。(指针数组也是值传递,将指针拷贝) 值拷...
08Go字符串详解
杨旭
2019-03-01
阅读 6 分钟
1.5k
Go字符串详解 总结: 字符串是不可变值类型,内部⽤指针指向 UTF-8 字节数组。 默认值是空字符串 ""。 ⽤索引号访问某字节,如 s[i]。取出的是字节,不是字符 不能⽤序号获取字节元素指针, &s[i] ⾮法。 不可变类型,⽆法修改字节数组。使用[]rune进行修改是重新分配内存,并复制字节数组 字符串可以用==和<进行...
07GO语言函数
杨旭
2019-03-01
阅读 7 分钟
1.6k
Go 函数 不支持 嵌套、重载和默认参数 函数无需声明原型、支持不定长度变参、多返回值、命名返回值参数 支持匿名函数、闭包 函数也可以作为一种类型使用 函数是一等公民,可作为参数传递 函数传递是值的拷贝或者是指针的拷贝,区别在于会不会影响原始值 不定长变参,如果传入slice,一定要用 ...展开传入
06Go语言常见语法错误
杨旭
2019-03-01
阅读 5 分钟
4.5k
如果你有未使用的局部变量,代码将编译失败。如果你给未使用的变量分配了一个新的值,代码还是会编译失败。你需要在某个地方使用这个变量,才能让编译器愉快的编译。
05Go语言fmt包详解
杨旭
2019-03-01
阅读 2 分钟
1.5k
Print采用默认格式将其参数格式化并写入标准输出。如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格,返回写入的字节数和遇到的任何错误。
04Go基本语法
杨旭
2019-02-27
阅读 3 分钟
1.3k
Go基本语法 [TOC] 1、运算符 Go 语言内置的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符。 (1)算数运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 ++ 自增 -- 自减 (2)关系运算符 运算符 描述 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 != 检查两个...
03Go 类型总结
杨旭
2019-02-27
阅读 5 分钟
1.5k
Go 类型总结 [TOC] 1、内置类型和内置函数 内置类型: 类型 ⻓度 默认值 说明 bool 1 false 布尔型只有true和false byte 1 0 uint8的别名 rune 4 0 Unicode Code Point, int32别名 int, uint 4 或 8 0 有符号和无符号证书,根据系统可能32 或 64 位 int8, uint8 1 0 -128 ~ 127, 0 ~ 255 int16, uint16 2 0 -32768 ~ 327...
02go 基础知识
杨旭
2019-02-27
阅读 1 分钟
1.4k
go 基础知识 [TOC] 1、go程序整体结构 2、go声明和命名 3、内置关键字 4、注释和可见性 5、导包两种方式,以及package别名 1、go 程序结构 bin:存放程序生成的可执行文件。go install生成的就在这 pkg: 存放编译后静态库 .a ,依赖的一些包编译后会在这生成 src: 存放源代码 导包有两种:import “单个包” , 或者 import(...
01Go命令介绍
杨旭
2019-02-27
阅读 2 分钟
1.4k
Go 命令介绍 go 提供了一套强大好用的命令系统 {代码...} 详细的官网地址为:中文[链接] 英文:[链接] 介绍几个常用的: 1、go build go build [-o output][-i] [build flags][packages] 这个命令主要用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。 go build 会默认编译当前文件夹下的所有.go结...
Android 集成React Native 到现有的项目踩坑记录
杨旭
2018-07-30
阅读 7 分钟
4.3k
(1)配置react-native的开发环境(2)创建一个react-native 的项目(3)把项目中的android目录里面的东西换成现有的项目(4)配置android项目的build.gradle文件以及各种依赖(5)运行项目,运行服务,设置ip端口调试。(6)各种踩坑问题,比如不支持64位手机的so库问题,找不到服务,由于react native 版本问题导致的...
Android Studio 3.1.3 升级踩坑记录以及记录几个好用的插件
杨旭
2018-07-29
阅读 3 分钟
4.5k
看到AS每天提醒更新,所以没忍住还是从3.0更新到了3.1.3,于是乎项目就跑不起来了。另外由于之前把android studio 的配置文件改了,更新完又变成了默认的配置路径,所以还要把配置文件改一下。以下是踩坑记录
Android架构组件官方文档03——ViewModel
杨旭
2018-07-02
阅读 5 分钟
3.6k
ViewModel类旨在以一种有生命周期意识的方式存储和管理与UI相关的数据。ViewModel类允许数据在配置变化(例如屏幕旋转)后存活。注意:要将ViewModel导入到Android项目中,请参阅向项目添加组件
Android架构组件官方文档02——LiveData
杨旭
2018-06-27
阅读 8 分钟
7k
LiveData是一个可观察的数据持有者类。与常规可观察性不同,LiveData具有生命周期感知能力,这意味着它尊重其他应用程序组件(例如活动,片段或服务)的生命周期。这种感知确保LiveData只更新处于活动生命周期状态的应用程序组件观察者。注意:要将LiveData组件导入到Android项目中,请参阅向项目添加组件。如果观察者的...
Android 架构组件官方文档01——LifeCycle
杨旭
2018-06-26
阅读 7 分钟
3.2k
支持生命周期的组件执行操作以响应另一个组件(例如Activity和fragment)的生命周期状态更改。这些组件可帮助您生成组织性更好,并且通常更轻量的代码,这些代码更易于维护。常见的模式是在Activity和fragment的生命周期方法中实现依赖组件的操作。但是,这种模式导致代码的组织不良以及错误泛滥。通过使用生命周期感知...
Dart语言之旅
杨旭
2018-06-26
阅读 3 分钟
2.5k
本页向您展示了如何使用每个主要的Dart特性,从变量和运算符到类和库,假定您已经知道如何用另一种语言编程。要了解有关Dart核心库的更多信息,请参阅Dart Library之旅。无论何时您想了解有关语言功能的更多详细信息,请参阅Dart语言规范。
Android 架构组件之 LifeCycle详解
杨旭
2018-05-31
阅读 8 分钟
35.7k
activity 和fragment 是有声明周期的,有时候,我们的很多操作需要写在声明周期的方法中,比如,下载,文件操作等,这样很多情况下回导致,我们在activity中的声明周期方法中写越来越多的代码,activity或者fragment 越来越臃肿,代码维护越来越困难。 使用lifecycle就可以很好的解决这类问题。lifecycle代码简洁,我们...
1
(current)
2
下一页
1
(current)
下一页