从君犬力巧到窘突穷窍

楔子

从君犬力巧到窘突穷窍。多了四个穴字头而已。但意义非凡。

悟字是本人爱好,象形文字是千年来中国人使用的语言,我不是历史老师,更不是语言学家,但仅是边用边悟,这便是每个中国人原生的权力。

从君犬力

这好似一句成语,算我自创的。就和不觉明厉一样都不是成语,就是用现代人最肤浅的解读就行了。为了所追随的人效犬马之力。这好比下属给老总画饼的感觉,不对,因为饼的成色不多,只是一种表衷心吧。

当你跟对了人,就是值得的,你即使不被重用受到些委屈,不过,只要有上应和正应,你至少不会被玩死。

当你跟错了人,那么,君犬力就变成了 窘突穷。

因为,你被套路了,被蒙昧了,被压在了五行山下了,无出头之日也。生活迫,屌丝围,依然苦。

所以这个时候使用的力都是蛮力,并非有更丰硕的回报。

大家一定听过,

“富有术数,不在劳身;利在势局,不在力耕!”。

当然有时把“术数”理解成天命数理。总之,大家此时一定会认为,所有的穴字头都是负能量的吧?古人造字会如此的作法吗?易经的基本原理就是,物极必反,否极泰来。所以,那么哪个字会让穴字头逆袭,引领穴字头的屌丝们革命。那就是窍。

人要越活越明白,

越通透,

越豁达,

越深刻,

那便是开窍。

穷则变,变则通,通则久。变即是巧!变即是易。

开窍至道

认知和魄力有如阴阳。有人认知很高,但身体沉重,步阀缓慢。有人魄力有余,但井底之蛙。

而当认知达到更高层时,反而生成另外的一种力,而非魄力了。无法描述的力。

一句话评脱口秀大会5选手

鸟鸟———— 怼男人很含蓄,用过家爱演爸爸就输出了段子,但应该学厨艺,因为炊烟袅袅。

杨笠———— 怼男人很直接,有点改邪归正了,但怎么不够邪了,因为脱口秀太后思文来了吗?。

杨蒙恩————爱情一美满,包袱有点短。

豆豆———— 再多理发的段子讲不过志胜的刘海儿。

广智———— 再多地铁的段子就一定能超越杰伦的专辑了。

rock———— 中年人的唯一力量,需要叹气,更需要硬气。

赵晓卉———— 如果我开一个专门怼笑果的公司,一定请你去。完全接得住李诞的招式,还能全身而退。

杨波———— 给你一句话机会逗笑我,不然我就……把你当海王的事说出去。

邱瑞———— 保持愤怒,千万别正常喽。就要膈应一下这个社会的乱现象。

小鹿———— 女版周奇墨,老不死,在笑果交完学费,你就火。

孟川———— 段子走偏锋,也是成绩不愠不火的原因。不能像杨波一样天马行空,有待突破。

呼兰———— 有货,知性,期待那种上气不接下气的密集包袱攻击感觉吧。要不表演前骑几圈共享单车先。

王建国———— 鸟鸟说她社恐,建国就笑了。千万不行嗑他俩的CP,不然,北大校友争抢三本理工男的新闻就见报了。

小北———— 放松是你的神器,可是你可能理解成没睡醒了。

志胜———— 上帝真是公平,低的不说了,情商是真高。笑果王熙凤,闹起大观园。

梁海源———— 中年人讲情怀段子只能讲给中老年人了。以灯泡见证程璐和思文的蜜月已经够尴尬了,还要以炮灰见证他们晋级,苦了你了。

norah———— 看看侬的名字,品牌设计就显媚外,根本无法谣谣领先的。

KID———— 短发造型明显增加功力了。

小块———— 就的瑟,北京的包租公。怎么让上海脱口秀冷静一下,也就是比深圳多点文化,但北京才是祖宗,用什么写稿,做一圈出租车就齐活了,不行就由请“周天花板”。

童漠男———— 北方有小爷,绝世而独立,到处毁行业,今天到笑果。

张骏———— 这男人嘛,不拿个博士,能面对自己且在大众前剖析,酷,张本科,我也是本科。

小佳———— 很狗嘛,弱势群体中的强势对手。

黑灯———— 嗓音很好听,视角专属,和小佳比,仍要进化到新阶段。

步惊云———— 只要场上大喊一声,大碗喝酒,再配上好汉歌,步三娘,晋级。

肉食动物———— 虽然有点漫才的审美疲劳了,但是,这种成人童话改编可以讲给小朋友专场吗? 德云社颤抖吗?

庞博———— 交大吴亦凡,不对交大李易峰,不对,总之,颜值靠你了。

House———— 此人正在接受银监会的调查,脱界的巴菲特。

新人:

毛豆———— 看着他我就想吃大肠,接地气的胖子。

璎宁———— 飒,舞台空间很大。

王十七———— 怎么感觉是钢铁侠+灭霸的结合体呢?

拉宏———— 那几分钟停电了。

橙色预警———— 有些风格,但默契不足,包装很漫画,才嘛。

郭展豪———— 还是学员,还是端着,不会自嘲,只在炫技和媚眼。

航哥———— 和三弟一样,看得到慢慢的成熟和执著,东北的那股劲儿,可以。

三弟———— 熟女范儿,线下一定很炸。而且听要配酒的。

北极熊猫———— 邻家兄妹装扮,但用着国宝的名号,结果小剧场水平。

唐香玉———— 全日制钢牙妹,我是有点怀疑,你脸上的那辆小面包车是啥牌子的?肇事的!

小四爷———— 冷面笑匠,可惜你不够面瘫。

蛋卷———— 起范,真的不笑,像管理厨子的。

南瓜———— 一张快递脸和一张厨子脸的区别是黑。

曹鹏———— 有潜力,医生吗?会有源源不断的笑料。

邓男子———— 差钱嘛,春晚魔术师?还是给这些小喀们授课呢?

江梓浩———— 进化了,学会了面对自己,努力搞笑,本身也挺搞笑。想无厘头还远些。

颜怡颜悦———— 三个女人才够热闹的,加上王勉就三个女人一台戏了。

伟大爷———— 挖掘了很多新人,像黄大妈,又讲的不错。80后有共鸣。

吴星辰———— 油腻,但不让人讨厌,这应该是很高的评价了。

下面,请出一对儿新人,程璐和思文,旧人吧不合适,新人吧还差点意思。唉^_^

婚姻将是你们永恒的主题和伤害,还有笑果。

每年此时,看完脱口秀大会就想掺和。

去年的感后观还是视频,链接在此。

https://www.toutiao.com/video/7019287901984784903/

今年就简单评论来一波吧!

swift编程开发

基础特性

可空类型的操作符

左边
右边
返回
使用示例及场景
可空实例绑定
if let va = vb, vc=va{
}
可空链式调用
va?.uppercased()
va?.append()—原地修改
隐式展开可空类型(是可空类型的一种)
??(nil合并运算符)
可空类型
对应的非可空类型
nil返回右边,否则左边的展开值

数组:

声明方式一:

var alist: Array<String>

声明方式二:

var alist: [String] = ["q","p","r"]

数据比较时,注意是有序的。

字典:

var dict1:Dictionary<String, Double> = [:]

var dict2 = Dictionary<String, Double>()

var dict3:[String:Double] = [:]

var dict4 = [String:Double]()

要点:

当用key去获取value时,如果没有值则返回的是value类型的可空类型。

技巧一:循环

for (key,value) in movieRatings{

}

技巧二:转换到数组

let va = Array(movieRatings.keys)

集合:

var groceryBag = Set<String>()

groceryBag.insert("qifwef")

for food in groceryBag{

print(food)

}

要点:不会重名,相当于distinct

有uion的方法针对两个set的取交集

有contain的方法针对set来判断元素存在

有intersection(_:)来找出两个set的都存在的元素set

有isDisjoint方法来判断两个set是否存在交集

函数:

func fname(外部参数名 内部参数名:[inout]类型)->(返回)类型{

return 返回值

}

注意:内部参数名就已经是显示参数名了,即在没有外部参数名时,使用函数时可以带着。而外部参数名更多是用于介词的辅助。当参数列表中有任一参数提升了层次,即用上了外部参数名,那么,有一个_符号是用来应付无关紧要的那个参数的外部参数名。如果要熟练玩味这两类参数名,一定是在使用中玩味出应用场景的概念。内部是函数微观算法层。外部是类型和指代层。

  • 变长参数

上面的变成<类型…>

  • 默认参数

直接用="defaultvalue"即可

  • in-out参数

调用时实参要加&修饰,以示要在函数内修改。

  • 多个返回值时

-> (returnvalue1: [Int], returnvalue2:[String])

  • guard语句

func …

{

guard let mv = name.middle else{

print("out func here.")

return

}

print(mv)

}

gurard守护的条件不足时提前返回。mv的可空类型没有值,或者为nil时,执行打印out func here.和返回。

如果守护的条件“不尴尬”时,就后面用其值了,print(mv)。

  • 闭包(高阶函数)

闭包通俗来说就是{},有时是嵌套在函数内的函数。但更多的指把函数为参数传值给函数和从函数内返回函数类型,注意返回是引用类型,传入可以匿名技巧。

高阶函数是至少要接受一个函数作为输入的。如:

数组的sorted(),map(),filter(),reduce()方法。在swift中sorted既可以用传入参数的语法:

vv.sorted(by: sortAscending)

也可以使用匿名函数法。即闭包表达式的应用:

vv.sorted(by:{(i:Int,j:Int)->Bool in

return i<j

})

利用类型推断,再进化一下:

vv.sorted(by:{(i,j in i<j})

最终版本:

vv.sorted(by:{$0 < $1})

因为数组的元素类型是默认的了。

对象特性/技术

枚举:

要点:第一次创建枚举的变量就必须要初始化。

枚举类型可以没有原始值,即一定要归成Int类型。当然也可以用原始值,并指定初始值。不局限成Int类型的。

细分应用场景:

有限的

计算的,可修改

技巧:

mutation func XXX…

说明这个函数会修改对象中的值。

结构:

细分应用场景

无限的

计算的,要修改,简单继承扩展

无复杂关联操作的

技巧:

mutation func XXX…

说明这个函数会修改对象中的值。

static func XXX…

说明这个函数是类型方法

类:

细分应用场景

无限的

计算的,要修改,要控制继承及可见性

复杂关联,可见性的

总之,继承,封闭,多态。

技巧:

[final] [override/static] [class] func XXX…

说明final class == static符号,关闭子类重写本方法的意思。所以class和static两个符号在结构和类中是不同涵义的。(结构中没有class关键字)

属性:

  • 嵌套属性

类作用域中的枚举或结构,比如某一个枚举Size(类的接下来的属性会用到。)

  • 存储属性

此类型属性必须有值,默认也可,后初始也可,这主要和下面的类型区别。只读的存储类型==常量

  • 惰性存储属性

lazy var townSize:Size = {

switch selft.population{

case 0…10_000:

return Size.small

….

}

}()

注意:后面还有一对小括号,就说明这是一个运行得出的属性。但依赖的population是一个存储属性。类一初始化就已经给定,所以,算法也是一并初始就定了。而且,后面不会重新计算了。这块取义依赖的成分大于惰性。

  • 计算属性

var townSize:Size {

get{

switch selft.population{

case 0…10_000:

return Size.small

….

}

}

set(){

}

}

  • 属性观察者

var population = 5_422 {

didSet(oldpopulation){

}

}

  • 类型属性

此类属性的值在同类型实例间共享。但必须有默认值(原因是没有初始化方法的)。

在类中的可以用class修饰来让子类继承覆盖,也可以用static来禁止覆盖。

适合将没有入参的行为改写成类型属性。

  • 访问控制

描述
对who可见
能继承使用
open
Public
internal(默认)
fileprivate
private

初始化方法

  • 结构体的默认初始化

var myTown = Town()

结构体的成员初始化

var myTown = Town(population:10_000, numberOfStoplights:6)

  • 结构体自定义初始化

委托初始化(在结构体中称为这个,在类中同义但是称为便捷初始化)

init(){

self.init()

}

  • 类的初始化(在类的继承场景中)

指定初始化

init(){

//初始化本类引入的属性

super.init()//调用父类中的初始化方法

}

便捷初始化

convenience init(){

selft.init()//本地的初始化,其中也可能调用指定的初始化,层层初始。

}

必需初始化

父类中要求

required init

子类中实现,关键字包括了Overrider的意思。

required init

反初始化方法

deinit{

}

高级特性

协议

枚举,结构体,类都可遵守协议,同时协议也可以继承,也可使用&来组合(用于传递参数)。可以理解它为是样貌。

protocol Velocity{

}

异常

func getNumber() throws -> Int{

throw 类中枚举的异常值

}

使用上面的函数时便可try getNumber()

或者在外层包裹:

do{

try get…

anotherfunc()

}catch Parse.Error.unexceptedEndOfInput{

}catch{

}

扩展

注意针对是类型,且是可以针对协议的。强大的冒汗了。可以理解成它是样式

typealias Velocity = Double

extension Velocity {

}

泛型和协议扩展的争论

泛型是固化一种模式算法,而扩展是让对象本身增量元素或行为,即样式或样貌。

所以,会用泛型,你要先具备知识,知晓有了某种前人栽的树,即知道已经有满足的可用的公共泛型函数了。

而用协议扩展,你就要自己栽树,但只给自己用在自己的地里。

育娃感悟

孩子是这个时代的焦虑之根。教育,健康。什么是更好的孩子,怎么成为更好的孩子。为人父母者苦苦寻觅,散尽千金……哲学能救人,救市,还是救时代!科学能害人,泡沫,还是制造焦虑!看着老婆发来的照片,一大堆儿童医院里测骨龄、看身高的家长和孩子们,我有点惊呼:这个时代的可悲与可笑。如果你能选择,你愿意选择活在当下吗?我的老婆认为让孩子长高才是父母应尽的义务。用生长激素来干预。我们不禁要反思,什么才是父母的责任,并且关键什么才是你责任的范畴呢?那些望子成龙的人,揠苗助长的监护人们…… 说他们为了自己的私心,他们一定是不服气的。 但孩子都是这样的家长给养废的! 为了成绩,为了长高,为了让自己的娃成为别人眼中的孩子。 而不是让孩子们成为自己。希望大家一起呼吁一下,父母和孩子,夫妻之间不要再“互相伤害”了。有些是我们必须干预的,有些是画蛇添足。为下一代养成饮食,作息,运动的好习惯,父母要处无为之事,行不言之教。一世缘分,各在其位,转眼而过,沧海一粟,包容带动,岂不快哉?