gin-swagger

关于 Swagger 官网 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。 可以生成客户端SDK代码用于各种不同的平台上的实现。 文件

043.字符串相乘 Multiply Strings

Description Medium 给定两个以字符串形式表示的非负整数 num1 和 num2, 返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 说明: num1 和 num2 的长度小于110。 num1 和 num2 只包

042.接雨水 Trapping Rain Water

Description Hard 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以

040. Combination Sum II 组合总和 II

Description Medium 定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次 说明: 所有数字(包括 t

039.组合总和 Combination Sum

Description Medium 定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 targ

038.报数 Count and Say

Description easy 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 "one 1" ("一个一&

037. 解数独 Sudoku Solver

Description hard 编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字

036.有效的数独 Valid Sudoku

Description 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字

035.搜索插入位置 Search Insert Position

Description 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无

032_最长有效括号

Description 给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。 Example 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 输入: ")()())" 输出: 4 解释: 最长有

031_下一个排列

Description 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排

030_串联所有单词的子串

Description 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配,中

029_两数相除 Divide Two Integers

Description 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 Example 输入: dividend = 10, divisor =

028_实现strStr()

Description 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 Example 输入: haystack = "hello", needle

027_移除元素

Description 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组

026-删除排序数组中的重复项

Description 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改

025-k个一组翻转链表

Description 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最

024-两两交换链表中的节点 Swap Nodes in Pairs

Description 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 Example 给定 1->2->3->4, 返回 2->1->4->3. Solution type

023-合并K个排序链表 Merge k Sorted Lists

Description 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 Example 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 Solution type ListNode struct { Val int Next *ListNode } func mergeKLists(lists []*ListNode) *ListNode { if len(lists) == 0 { return nil }

022-括号生成

Description 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 Example 给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] Solution // func generateParenthesis1(n int) []string

021-合并两个有序链表

Description 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 Example 输入:1->2->4, 1->3->4 输出:1

020-有效的括号

Description 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭

019-删除链表的倒数第N个节点

Description 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? Example 给定一个链表

018-四数之和 4Sum

Description 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d , 使得 a + b + c + d 的值与 target 相等?找出所有满足

017-电话号码的字母组合

Description 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 Example 输入:&qu

016-最接近的三数之和

Description 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。 返回这三个数的和。假定每组输入只存在唯一

015-三数之和 3Sum

Description 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c , 使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 Note 注意:答案

010-最长公共前缀

Description 查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。 Example 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。

013-罗马数字转整数

Description 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写

012-整数转罗马数字

Description 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写

010-Regular Expression Matching

Description 给定一个字符串 (s) 和一个字符模式 (p)。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 '.' 匹配任意单个字符。 '*' 匹配零个或多个前面的元素。 匹配应该覆盖整个字符

009-回文数

Description 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 Example 输入: 121 输出: true 输入: -121 输出: false 解释: 从左向右读

008-字符串转换整数(atoi)

Description 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找

007-Reverse Integer 整数反转

Description 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 NOTE 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,

006-Z 字形变换

Description 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H

004-寻找两个有序数组的中位数

Description 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数。 要求算法的时间复杂度为 O(log(m + n)) 你可以假设 nums1 和 nums2 不会同时为空。 Example

Add Strings 字符串相加

Description Note 注意 Example Solution Solution 02 Description Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2. 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 Note The length of both num1 and num2 is < 5100. Both num1 and num2 contains

003-最长无重复字符的子串

Description:Given a string, find the length of the longest substring without repeating characters. 给一个字符串,找出最长的非重复字段 Example: Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Input: "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1. Input: "pwwkew" Output: 3 Explanation: The answer is "wke", with the

002-Add Two Numbers 两个数字相加

Description:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.You may assume the two numbers do not contain any leading zero, except the number 0 itself. 给两个非空链表,表示两个非负的整

001-Two Sum 两数之和

Description:Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. 给一个整数数组,和一个目标值,查询数组中两个数之和为目标值的

go bin执行问题记录

因为${GOPATH}/bin目录下的执行文件无法被中断直接执行 需要Source之后才能使用, 只是在 .bash_profile文件里如此设置

Nginx 配置 HTTPS 服务器

Nginx 配置 HTTPS 并不复杂,主要有两个步骤:签署第三方可信任的 SSL 证书 和 配置 HTTPS 我的证书是在腾讯云上申请的地址 nginx.conf 配置内容 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include

mongodb 维护小记

数据库迁移 把当前服务器备份下来的数据迁移到另一个host服务器上,目录Path是当前备份的根目录 mongodump -u user -p pass -d doc_manager -o doc.dmp mongorestore -h host ./doc.dmp/doc_manager -u auth -p pass -d docmanager 本地处

vue-element-admin 踩坑日记 01

vue-element-admin 是一个后台集成解决方案, 它基于 vue 和 element。它使用了最新的前端技术栈, 内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模

gin api 跨域问题,cors

当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。 出于安全原因,浏览器限制从脚本内发起的跨域 HTTP 请求

MongoDB 用户名密码登录

MongoDB authentication MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mongodb就会产

nat

Elasticsearch 入门

简介 为什么要使用Elasticsearch Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定、 可靠、快速,而且也具有良好的水平扩展能力,是专门

Docker 入门

什么是Docker Docker是一个用来打包,装载和运行应用程序的一个轻量级容器的开源项目。 它的工作方式非常像虚拟机,包裹所有的东西(文件系

Go: 14-3 多任务版爬虫

并发调度器 //engine package engine import ( "log" ) type ConcurrentEngine struct { Scheduler Scheduler WorkerCount int } type Scheduler interface { ReadyNotifier Submit(Request) WorkerChan() chan Request Run() } type ReadyNotifier interface { WokerReady(chan Request) } func (e *ConcurrentEngine) Run(seeds ...Request) { out := make(chan ParseResult) e.Scheduler.Run() for i := 0; i < e.WorkerCount; i++ { createWorker(e.Scheduler.WorkerChan(), out, e.Scheduler) } for _, r := range seeds {

Go: 14-2 单任务版爬虫

总体的算法步骤 解析器 Parser 输入: utf-8 编码的文本 输出: Request{URL,对应的Parser} 列表,Item列表 单任务版爬虫架构 获取并打印所有城

Go: 14-1 爬虫实现

获取初始页面内容 使用相亲网站做目标 编码格式自动识别转换 获取有价值信息 获取城市名称和链接 使用css选择器 使用xpath 使用正则表达式 package main import ( "fmt"

Go: 13-1 爬虫简介

网络爬虫分类 通用爬虫:如baidu,google 聚焦爬虫:从互联网获取结构化数据 项目总体结构 go语言的爬虫库/框架 henrylee2cn/pholcus gocrawl colly hu17889/go_spider 重新开发一个爬虫库

Go: 12-1 迷宫的广度优先搜索

示例:广度优先算法 为爬虫实战做准备 应用广泛,综合性强 示例:广度优先搜索走迷宫 广度优先算法示意图 用循环创建二维slice 使用slice来实现队

Go: 11-2 其他标准库

其他标准库 bufio log encoding/json regexp time stings/math/rand 查看库文档 godoc -http :8888 (启用本地文档服务器) https://studygolang.com/pkgdoc

Go: 11-1 http标准库

Server package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, world!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) } Client 使用http客户端发送请求 使用http.Client 控制请求头部等 使用httputil

Go: 10-2 传统同步机制

检测数据冲突 未加锁时使用 go run -race atomic.go 时检测会发现数据访问冲突 加锁之后 运行-race 数据访问冲突就没了 传统同步机制 WaitGroup package main import ( "fmt" "sync" ) func doWork(id int, w worker) { for n

Go: 10-1 channel

channel的用法 channel buffered channel range 理论基础:Communication Sequential Process(CSP) Don’t communicate by sharing memory;share memory by communicating(不要通过共享内存来通信, 通过通

Go: 9-1 goroutine 并发编程

示例 func main() { for i := 0; i < 1000; i++ { go func(i int) { for { fmt.Printf("Hello form goroutine %d \n", i) } }(i) } } 协程 Coroutine 轻量级”线程” 非抢占式多任务处理,由协程主动交出控

Go: 8-2 生成文档和示例代码

文档 用注释写文档 在测试中加入Example 使用go doc/godoc 生成文档 package queue import ( "fmt" ) //A FIFO queue. type Queue []interface{} func (q *Queue) Push(v int) { fmt.Println(q) *q = append(*q, v) } // Pops element from head. func (q *Queue) Pop() int { head := (*q)[0] *q =

Go: 8-1 测试

传统测试 测试数据和测试逻辑混在一起 出错信息不明确 一旦一个数据出错,测试全部结束 @Test public void testAdd(){ assertEquals(3,add(1,2)); assertEquals(2,add(0,2)); assertEquals(0,add(0,0)); assertEquals(0,add(1,-1)); assertEquals(Integer.MIN_VALUE,add(1,Integer.MAX_VALUE)); } 表格驱动测试 分离了测试数据和测试逻辑 明确的

Go: 7-2 服务器统一出错处理

如何实现统一的错误处理逻辑 Error部分 在业务部分只处理正确的返回,error部分返回给调用部分 在函数输入部分做一个包装,然后再输出一个函数

Go: 7-1 资源管理与出错处理

defer的调用 确保调用在函数结束时发生 (Open/Close,Lock/Unlock,PrintHeader/PrintFooter) func a() int { defer b() return 0 } //b 的执行是发生在 return 0 之后,注意 defer 的语法,关键字 defer 之后是函数的调用。 defer 的作用就是把

Go: 6-2 函数式编程

go语言闭包的应用 更为自然,不需要修饰如何访问自由变量 没有Lambda表达式,但是有匿名函数 package fib //斐波那契数列 // 1, 1, 2, 3, 5, 8, 13, ... func Fibonacci() func() int {

Go: 6-1 函数式编程

特点 函数可以作为参数,变量,返回值 高阶函数 函数->闭包 //golang func adder() func(int) int { sum := 0 //自由变量 return func(v int) int { sum += v return sum } } //python def adder(); sum = 0 def f(value): nonlocal sum sum += value

Go: 5-1 接口

duck typing 基于特征,而不是基于类型 描述的事物的外部行为,而不是内部结构 pythn中的duck typing def download(retriever): return retriever.get("www.downloadurl.com") 运行时才知道传入的retriever有没有g

Go: 4-1 面向对象

Go语言的面向对象 Go语言仅支持封装,不支持继承和多态 Go语言没有class,只有struct 结构的创建 使用自定义工厂函数,需要返回局部变量

Go: 3-2 Map 和字符串的一些操作

Map rune 相当于go的char strings Map Map 是一种无序的键值对的集合。最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。 Map 是一种集合,可

Go: 3-1 数组、切片和容器

数组 (值类型) [10]int 和 [5]int 是不同的类型 调用func f(arr [5]int)会拷贝数组 调用func f1(arr *[5]int)可以在方法里修改arr Go中一般不直接使

Go: 2-4 指针

什么是指针 一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址。 类似于变量和常量,在使用指针前你需要声明指针 如何使用指针 定义指针变

Go: 2-3 函数

函数 函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉

Go: 2-2 条件语句和循环语句

语句 描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成 if…else if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 if 嵌套语

Go: 2-1 变量定义

变量声明 指定变量类型,声明后若不赋值,使用默认值。 根据值编译器自行判定变量类型。 省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导

Go:记笔:1-1 导读

GO语言很特别 没有”对象”,没有继承多态,没有泛型,么有try/catch 有接口,函数式变成,CSP并发模型(gor

Go 语言总结

前言:(搭建并行管道,感受GO语言魅力) Go 归类总结 类型检查:编译时 运行环境:编译成机器代码直接运行 GO语言的特色:面向接口,函数式编程,并发

pigeon

小记 最近做持续的自动集成工具,例如数据模型好api接口模型的自动化生产,Code提交自动检查,合并代码到打包分支自动打包等等 我们需要实时监控

Shell 小记,-文本操作

修改文件的某一行内容 做自动的git提交和PodSpec发布脚本 需要在提交之前使用shell脚本修改podSpec文件的Version版本号。

Jenkins-打包之远程构建

在大型项目中,经常会有新的业务或者基础库需要更新合并进入测试分支,然后使用Jenkins打包给测试人员进行测试。 但是如果人工去构建打包又会显

无线真机调试-Xcode9 -iOS

首先你需要 Mac系统电脑 安装Xcode9 iPhone设备需要iOS11的系统 其次你的手机必须和电脑处于同一个无线局域网中 首次安装连接需要先连

imageMagick 和 PlistBuddy合体生成图标

demo地址 图片内容处理文件 (merchant-icon-generator.sh) #获取参数 文件源 SRC_FILE="$1" #版本号 shortVersion="$2" #标签number bundlerNum="$3" #转换 文件 绘制 坐标 填充 颜色 透明度 填充 坐标 填充 颜色 透明度 生成目标

golang web Send Email

//注意邮件格式,以免被当垃圾邮件 package email import ( "net/smtp" "strings" ) const ( HOST = "smtp.163.com" SERVER_ADDR = "smtp.163.com:25" USER = "xxx@163.com" //发送邮件的邮箱 PASSWORD = "xxx" //发送邮件邮箱的客户端授权密码 ) type Email struct { to string

ubuntu ssh免密登陆

前置条件: 一台主流的Linux服务器,如CentOS,Ubuntu,Fedora,redhat等 一台能连上以上服务器的客户机,我用的mac,

web01-配置Mysql

安装Mysql 创建userInfo表 CREATE TABLE `userinfo` ( `uid` int(11) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(16) DEFAULT '', `departname` varchar(20) DEFAULT '', `password` varchar(32) DEFAULT '', `sex` tinyint(1) unsigned zerofill DEFAULT '0', `userid` varchar(32) DEFAULT '', `phone` varchar(13) DEFAULT '', `phoneprefix` varchar(6) DEFAULT '', `createtime` int(10) unsigned NOT NULL, `updatetime` int(10) unsigned NOT NULL, `state` tinyint(1)

imagemagic

首先:brew install ImageMagick 熟悉ImageMagick命令: resize当前目录下的图片到100x100f分辨率 convert 1024x1024.png -resize 100x100 icon02.png 填充某像 convert 1024x1024.png -region 1024x224+0+800 -fill "rgb(255,166,48)" -colorize 100% new.png convert

大文件分片上传解决方案

分片模型:索引,上传状态,偏移量,大小,文件名,类型,分片数 md5: 获取文件的md5值 文件管理工具:文件路径, 分析文件内容,生成数据。 上传任务池中

swift3-21 析构过程

在一个类的实例被释放之前,析构函数就被立即调用,用关键字 deinit 来表示析构函数, 类似与初始化使用 init 来标示。析构函数只适用于类类型。 析构过程原理 Sw

swift3-20 构造过程

构造过程是为了使用某个类、结构体或者枚举类型实例而进行的准备过程。这个过程包含了为实例的每一个属性设置初始值 的初始化任务 swift的构造函数

swift3-19 多态性

多态性 同样的操作或者方法,不同的对象执行的时候表现出完全不同的行为 使用父类指针或者引用指向子类的实例,然后再自雷中覆盖父类的方法,利用父类引

swift3-18 继承

继承:我们可以理解为一个类获取了另外一个类的方法和属性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类), 我们也可以为类中继承来

swift3-17 单例

单例写法 public class Manager{ public var score = 0 public static let defaultManager = Manager.init() private init(){ } public func addScore(){ score += 10 } } let manager = Manager.defaultManager manager.addScore() manager.score manager.addScore() manager.score let manager2 = Manager.defaultManager manager2.addScore() manager2.score

swift3-16 属性

Swift 属性将值跟特定的类、结构或枚举关联 属性可分为存储属性和计算属性: 存储属性 计算属性 存储常量或变量作为实例的一部分 计算(而不是存储)一个值 用于

swift3-15 类

类:Swift 类是构建代码所用的一种通用且灵活的结构体。我们可以为类定义属性和方法。 与其他编程语言不同的是,Swift 并不要求你为自定义的类

swift3-14 结构体

Swift 结构体是构建代码所用的一种通用且灵活的构造体。我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能. 与 C 和 Objective-C 不同的是: 结

swift3-13 枚举

枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。 Swift 的枚举类似于 Objective C 和 C 的结构 枚举的

swift3-12 闭包

闭包 闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来传参传值。 Swift 的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编

swift3-11 函数

函数定义 Swift 定义函数使用关键字 func。 定义函数的时候,可以指定一个或多个输入参数和一个返回值类型。 每个函数都有一个函数名来描述它的功能。通过

swift3-10 数据集合小节

选择合适的数据结构 数组: 有序,最大的特定就是有序,如果我们操作的元素是有序的话,使用数组是最方便的。如果需要排序,最好也选择数组 集合: 无序,

Swift3-09 集合

将一些元素放在一起,它们是无序的, 跟数组的不同是,数组是一个有序的列表,而集合是一个有序的数据集 为什么需要集合,因为集合是无序的,所以,在做

Swift3-08 字典

字典是存储 键-值 数据对的无序数据集合 基本方法 var dic = ["key":"value", "a":"b"] dic["key"] var value = dic["key"] //返回的 value 是一个可选型 value = dic["daaaa"] dict.isEmpty dict.count if let value = dic["key"]{ print(value) } var dict:[String:Int] = ["1":1,"2":2] dict["1"] var dict01:[Int:Int] = [1:1,2:2] dict01[1] var dict02:[Int:Any] = [1:1,2:"a"]

Swift3-07 数组

数组是 Swift 三种最基本的数据集合的一种,这三种集合分别是: Array Dictionary set 数组的概念就是一个有序的数据序列,概念很简单,我们已经很熟悉。 初始化方式 var numbers = [0,1,2,3]

Swift3-06 可选型 Optionals

画重点! Optionals 是 swift 新加入的类型,所以之前的 Objective-C 中是没有这个概念的。可选型 简单一些理解就是:有值的时候就有值,无值的时候 是 nil. 但是 swift 的 nil 和其他语言中的

Swift3-05 逻辑控制

控制流的三种基本结构: 顺序结构: 顺序语句有语句序列组成,程序执行时,按照语句顺序,从上而下,一条一条顺序执行 循环结构 循环语句使用同一个语句组

Swift3-04 基础运算符

赋值运算符 = 这里是没有返回值的。返回值可能是Void,此时不等于nil,即赋值成功;或等于nil,即赋值失败 var a = 3 a = 2 数学运算符 + - * /

Swift3-03 基础类型

常量 let let a = 1 let b:Int b = 1 变量 var var b = 2 swift 是一个强类型语言: var x = 1 x = "abc" //会报错(Cannot assign value of type "String" to type "int") 显示声明变量 let s:String = "abc" 一次声明

Swift3-02 初见

首先我们来在屏幕上输出一个 hello world print("hello world") 不需要 import 任何库,可以直接在全局作用域使用。代码结尾不要带分号。 Xcode 提供了代码预览功能 Playground . 使用它可以加快 swi

关于 Swift3-01

Swift 是一门新的编程语言,用于编写 iOS、OS X 以及 watchOS 应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。 Swift 使用安全的编程模式并添加了

Go语言fmt包Printf方法详解t

Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作。 General %v 以默认的方式打印

golang-Gin-Https

关于https 背景知识 密码学的一些基本知识 大致上分为两类,基于key的加密算法与不基于key的加密算法。现在的算法基本都是基于key的,ke

TableView 中 Cell的重用机制分析

UItableView 是我们经常会用到的一个数据列表展示控件, 其 Cell 复用api更是我们要经常用到的 这个方法到底是怎么实现的呢? [tableView dequeueReusableCe

JS判断客户端类型

通过浏览器的userAgent,使用JS判断客户端、浏览器、操作系统类型 扫描二维码打开: 测试链接: function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { alert('在微信里打开

iOS 开发Debug工具壳

初衷 移动端开发的时候总会遇到需要切换设备环境,或者切换服务器环境,或者查看一些测试 Log的时候. 这个时候免不了需要调取一下设备信息, 所以就想

ReactiveCocoa简单介绍

一 引入 ReactiveCocoa 使用 pod 引入 选择自己需要的版本 pod 'ReactiveCocoa' 二 使用 ReactiveCocoa 下方会通过一些简单的实例来介绍一下信号量机制和一些常用的方法。 引入相应的头文件,在工程中引入

YYModel 简介与使用

1. 简单的 JSON 与 Model 的转换 // JSON: { "uid":123456, "name":"Harry", "created":"1965-07-31T00:00:00+0000" } // Model: @interface User : NSObject @property UInt64 uid; @property NSString *name; @property NSDate *created; @end @implementation User @end // 从 JSON 转为 Model: User *user = [User yy_modelWithJSON:json]; //从 Model 转为 JSON: NSDictionary *json = [user yy_modelToJSONObject]; 如果 Model 属性的类型和 JSON 中

iOS 自定义 Log 简介

我们在调试程序的时候,往往需要输出一些日志信息,用到NSLog函数,当我们准备发布程序,需要注释掉NSLog代码,这个时候往往会定义一个宏,

singnal 信号类型

简介 处理一些 crash 需要查到这些资料 信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如

React Native如何做跨平台设计

Facebook 开源 Facebook 在它的F8开发者大会上开源了它的F8大会App,甚至还配上了教程,我组织了一个翻译小队对这个教程进行了翻译。虽然比百万哥晚了几天,但

MongoDB的Go语言驱动

mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官方网站:ht

golang Web 框架 gin 简介

GitHub: 对比体验了 Beego 、Martini 和 Gin .整体来说 Beego 太重, 虽然功能完整,但是学习起来也有点不知所云. Martini 和 Gin 差不多. 先随着 Gin 的文档完成了

iOS 基础内容

序言 基础要牢固! OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装、继承、多态。它既具有静态语言的特性(如C++)

深入理解RunLoop

RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释

iOS下Category添加属性字段

首先说明一下,直接在Category中是不能添加属性的,就算在.m文件中实现了相应的getter和setter方法,调用的时候也是会报错的。

Objective-C 中 +load 与 +initialize

类的加载 在java语言里,可以通过如下代码来实现加载类的时候执行对类的操作,一般叫:类初始块,或者,类加载块。比如 Java代码 public class MyClass{ static{ …… }

Objective-C+Runtime 浅析

From 一、什么是Objective-C Runtime? Objective-C是动态语言, 而Runtime可以说是Objective-C的灵魂。简单来说,Obj

iOS中的谓词(NSPredicate)使用

首先,我们需要知道何谓谓词,让我们看看官方的解释: The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering. NSPredicate类是用来定义逻辑条件约束

iOS JS call OC

接着上节我们讲到的iOS调用js 下来我们使用js调用iOS js调用iOS分两种情况 一,js里面直接调用方法 二,js里面通过对象调用方法 首先我

iOS OC call JS

从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了。 下面我们就简单了解一下这个框架 首先

使用hugo搭建个人博客站点

转载 from: coderzh

Hugo是一个用Go语言编写的静态网站生成器,它使用起来非常简单,相对于Jekyll复杂的安装设置来说,Hugo仅需要一个二进制文件hugo(hugo.exe)即可轻松用于本地调试和生成静态页面。

JKImageView

项目地址:https://github.com/brasbug/JKImageView-- 第一步:拿到网络图片并显示出来 首先重网络拿到图片资

NSThread

一、概述: NSThread是一个轻量级的多线程技术,每一个对象代表一个线程。优点:轻量级,使用简单缺点:  不能控制线程执行顺序,不

NSOperation的简单使用

一、NSOperation的简介 NSOperation的抽象程度高于NSThread,它是苹果对线程的一个面向对象封装。NSOperatio

GCD的介绍和使用

GCD的介绍和使用 介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务

关于我

。。。。。。 一些链接 我的独立博客:blog.flywithme.top Github: github.com/flywithbug Email:neverfall@foxmail.com 微信公众号: