对于大道理,其实真没有必要花很多时间去通读一本书,听听别人对于书的总结,其实也就够了。 作为一名生活了30年的现代女性,懂得这些大道理,其实从小就有各种灌输渠道。电视,电影,小说,看过的一些鸡汤书籍,以及身边人的经历都会说明这些道理。而专门还去听别人讲解,是为了加深印象,当有些事情真正发生时,自己能够想起曾经了解到的道理,尝试着去做。 好了,开始说书中介绍的内容。 本书是一本旨在教夫妻经营婚姻的。 首先,列出造成婚姻紧张的征兆。 交谈以苛责的方式开始,然后就是批评,鄙视,辩护,冷战,情绪失控,最后以离婚收场。 然后,再列出一些方法,让我们学会经营婚姻,避免以上征兆。 1.多了解对方,要一直不停的了解,这样才不会有生疏感。夫妻才应该是这世上最亲密的人。 2.培养喜爱和赞美对方。真心的哟,要努力去找对方的有点,包容缺点。 3.彼此靠近,身体接触,减压谈话(没有批评和指导,只是为了让对方释放压力) 4.让对方为你做些决定。 5.温和开场,妥协收场(切记以苛责开始) 6.暂时无法解决的问题,要懂得和谐相处 7.创见共同的愿景 其中说道婆媳关系冲突时,应站在妻子一方,哈哈。这个挺有意思的。自己小家庭的问题,自己处理,才
npm install ... sh: 1: node: Permission denied npm config set user 0 npm config set unsafe-perm true
Ubuntu 16.04 vim /etc/network/interfaces 修改配置文件 //codefile:/etc/network/interfaces # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.200 # local IP Address gateway 192.168.0.1 netmask 255.255.255.0 dns-nameservers 8.8.8.8 # specify dns server Ubuntu 18.04 vim /etc/netplan/50-cloud-init.yaml 修改配置文件 //codefile:/etc/netplan/50-cloud-init.yaml network: ethernets: eth0: dhcp4: false addresses: [192.168.0.200/24] gateway4: 192.168.0.1 nameservers: addresses: [8.8.8.8]
实例方法 允许在类、结构和枚举中定义实例方法。一个实例方法可以调用该类型内所有的实例方法,可以访问该类型内的所有属性。 class Counter { func increment() { // 方法实现 } } let counter = Counter() counter.increment() 从根本上来讲,方法跟函数的本质是一样的,只不过方法跟定义它的类型有关,不能像函数一样单独调用。所以,方法的参数定义与函数的参数定义原则也是一致的,默认地,Swift会给第一个参数一个本地参数名,会给第二个以及之后的参数一个本地和外部参数名。例如下面代码看到的。 class Counter { func incrementBy(amount: Int, numberOfTimes: Int) { // 等效于incrementBy(_ amount: Int, numberOfTimes numberOfTimes: Int) // 方法实现 } } 当然,如果你觉得默认的参数定义无法满足你的要求,你也可以显式地定义每个参数的本地参数名和外部参数名。记住,主动权在你。 我们知道,结构和枚举是值类型,对于值类型,它的
public class StringUtils { public static boolean isNullOrEmpty(String stringValue) { return stringValue == null || stringValue.isEmpty(); } public static String trim(String stringValue) { return isNullOrEmpty(stringValue) ? stringValue : stringValue.trim(); } public static String numberToHalfWidth(String stringValue) { if (isNullOrEmpty(stringValue)) { return stringValue; } return stringValue.replace('0', '0') .replace('1', '1') .replace('2', '2') .replace('3', '3') .replace('4', '4') .replace('5', '5') .re
关键字: DISTINCT 用于返回唯一不同的值。 SELECT DISTINCT column1, column2, ... FROM table_name 关键字: TOP、LIMIT、ROWNUM 用于规定要返回的记录的数目。 SQL Server: SELECT TOP 2 * FROM table_name SELECT TOP 50 PERCENT * FROM table_name MySQL: SELECT * FROM table_name LIMIT 5 Oracle: SELECT * FROM table_name WHERE ROWNUM <= 5 操作符: [NOT] LIKE 用于在WHERE子句中搜索列中的指定模式。 SELECT * FROM table_name WHERE column_name LIKE 'N%' -- 其中'%'为SQL通配符 SQL通配符必须与LIKE运算符一起使用。 %: 替代一个或多个字符 _: 仅替代一个字符 [^charlist]或[!charlist]: 不在字符列中的任何单一字符 操作符: [NOT] IN 用于在WHERE子句中筛选多个
//codefile:DateTime.swift import Foundation class DateTime { static var now: DateTime { return DateTime(Date()) } static func parse(dateString: String, format: String, defaultValue: DateTime) -> DateTime { let dateFormatter = DateFormatter() dateFormatter.dateFormat = format dateFormatter.locale = .current if let date = dateFormatter.date(from: dateString) { return DateTime(date) } return defaultValue; } private let _date: Date init() { let components = DateComponents(year: 1, month: 1, day: 1, hour: 0, min
时间概念 UTC时间:世界标准时间,接近于0时区上的时间表示。 本地时间:本地时区上时间表示,例如北京处于东八区,则在UTC时间上再加上8小时即为北京时间。 Unix时间戳:0时区上自1970年1月1日零点起到现在的总秒数。 .NET DateTime类型 属性Kind,表示时间类别,枚举类型: Utc: 表示UTC时间 Local: 表示本地时间 属性Ticks,当前时间类别(Kind),自0001年1月1日零点起到现在以100毫微妙(10^-7秒)为单位的数量。 UTC时间最小值:new DateTime(0, DateTimeKind.Utc) 本地时间最小值:new DateTime(TimeZone * 60 * 60 * 10000000, DateTimeKind.Local) 时间戳计算 时间戳(Unix) -> 本地时间(Local) Unix + UTC1970 + TimeZone = Local 本地时间(Local) -> 时间戳(Unix) Local - TimeZone - UTC1970 = Unix
关于闭包 所谓闭包,就是一段自包含的代码块,它可以作为常量、变量使用。对于闭包,它能够捕捉和存储在定义它的上下文中任何常量和变量的引用。 全局函数、内联函数实际上就是一种特殊的闭包形式。闭包总共有三种形式: 全局函数是一种带有名字但是不捕捉任何值的闭包形式。 内联函数是一种带有名字并且捕捉来自包含它的函数内的值的闭包形式。 闭包表达式是一种不带名字、使用轻量级语法的闭包形式,能够捕捉来自包含它们上下文的值。 闭包表达式 闭包表达式基本由闭包参数(参数名称和参数类型)、返回类型、关键字in和闭包体组成,语法形式: { (parameters) -> return_type in // 闭包体 } 闭包参数可以是常量参数、变量参数和输入输出参数。不允许带默认值。可以使用变长参数,但是必须给这个变长参数命名。元祖类型也能被使用。 names.sorts({ (s1: String, s2: String) -> Bool in return s1 > s2 }) names.sorts( { (s1: String, s2: String) -> Bool in return s1 > s2 } ) 特别地,若闭包
HTTP Upgrade机制可以用来将HTTP连接升级到WebSocket连接,需要用到Upgrade和Connection头。对于代理服务器,需要将来自客户端的Upgrade请求带到后端服务器上,同时保持长连接。 location /ws/ { proxy_pass http://wsbackend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }