首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不要被“学会”假象迷惑

“……” 这是我第一次被别人戳穿时对话。那时我深刻理解了一个道理: “学过”并不等于“学会”。 那些我看过书,都真实放在我书柜上。 那些我参加过培训证书,也都真实发生在档案里。...这就是真实熊瞎子掰苞米故事,掰下来新,丢了旧。 我并不是个例, 很多喜欢读书的人,喜欢买书。我认识了很多人,都有很多书,很多人会舍不得扔掉它们。因为总觉得有什么没读懂。...而最难拆穿谎言,往往是自己欺骗自己。 而真正知识,是经得起提问。 上过大学同学都知道,最好大学老师上课一般不看书讲,知识自在胸中。...真实知识和学问,往往带着强烈个人风格。主要因为是和自己融为一体知识产出。所以, 你学会了多少,不在于你“输入”,而在于你“输出”。...不要把自己变成一个分类书单,你脑子里,应该有哪些书籍和培训全部。 更多内容,请参看“学习力提升”文集日后更新。

42610

Rust 让人迷惑 “借用”

可以看到 a 变量分配在栈上 rsp + 0x4, 初始值是 0, 然后第 3 行反汇编可以看到,lea 取了 a 地址,然后将地址传递给栈上 _r 本质上 rust 引用和普通指针区别不大,只是在编译阶段...按引用传递对象方式称作借用 (borrow), 这比转移所有权更有效 一个引用生命周期,一定不会超过其被引用时间。...这显而易见,为了防止悬垂引用 如果存在一个值可变借用,那么在该借用作用域内,不允许有其它引用(读或写) 没有可变借用情况下,允许存在多个对同一值不可变借用 fn main() { let...是对 a 不可变借用 我一开始困惑点在于,这个作用域到底有多大!!!...Name 是一个字符串引用,所以实例化 Stu 对象没有 Name 所有权,那么就要符合上面的借用规则。

44520
您找到你想要的搜索结果了吗?
是的
没有找到

让你迷惑 Kotlin 代码(3)

loop() 函数参数是函数类型,我们一般称这种参数或者返回值是函数函数为 高阶函数 。loop() 函数会遍历 Iterable 每个元素,并执行指定操作。...所以问题关键在于传入 loop 函数 Lambda 中 return 到底是从哪里返回? 如果是从 Lambda 返回到外层函数的话,会打印 12ok,选 B 。...但你又错了,是可以编译。 foreach 是 Kotlin 标准库中定义扩展函数。把它和之前我自己定义 loop 比对一下。...关于 inline,我写过一篇文章, 重学 Kotlin —— inline,包治百病性能良药?。 为什么使用 inline 修饰高阶函数中 Lambda 表达式中可以使用 return 呢?...因为这种情况下没有语义上歧义。

48440

让你迷惑 Kotlin 代码(1)

今天在 Medium 看到了一个很有趣小知识,爬上来和大家分享一下。...再回过头对比一下两次代码,如下图。 左边代码在条件判断分支中执行打印语句,符合我们想象中执行逻辑,这没有问题。...右边代码在 let 代码块中执行打印语句,虽然不符合我们想象中执行逻辑,但是它仍然打印了 ,positive,zero 。...说明这个 let 成功作用在了一个 String 对象上,间接说明了 Kotlin if/else 是有返回值。 那么,为什么第一个 if 返回值被忽略了呢?因为作用域函数 let 。...因为使用 () 显示指定了执行 let 函数对象。 到这里,你应该也明白上面是怎么回事了。let 执行上下文遵循了 就近原则 , 下图中两段代码是等价

34930

「硬核JS」令你迷惑位运算

在这一组操作符中,相比加减乘除、逻辑判断、相等、布尔等这些我们经常会用到操作符,位运算操作符好像是极其特殊一类,由于位操作符不是那么直观导致很多刚入门甚至是老程序员都不太喜欢用它 大多数人都认为在写程序过程中使用过多花里胡哨位操作符对阅读体验是极其不好...,有的人可能会说就算懂得位运算,想要阅读一段位操作符组成代码还是需要时间来思考,并不如通俗点写来直观,嗯,也对,但是加上当量注释的话也还行 总之,你可以不用,但一定要会,存在即合理,任何说法都不是不学习它理由...1 ,过程自算,得到了负数二进制原码 1000 00 11,即十进制 -3 同上所述 十进制数字 1 按位非即十进制 -2 十进制数字 0 按位非即十进制 -1 上面说都是正数,我们看一个负数例子...~-1 == 1 == true ,一般来说我们使用按位非写法来校验 -1 是用最多,也是位运算中最容易令大家接受了,是不是特别简单方便呢 使用按位非 ~ 取整 按位非骚操作中,还有一个比较普遍就是位运算双非取整了...,这样的话正数有符号右移和无符号右移结果都是一致 负数就不一样了,当把一个负数进行无符号右移时也就是说把负数二进制码包括符号为全部右移,向右被移出位被丢弃,左侧用0填充,由于符号位变成了 0,所以结果总是非负

1.7K20

让你迷惑 Kotlin 代码(4)

答案看起来比较绕,但题目还是比较简单。 map 函数会逐一变换集合中元素,其中打印语句肯定会对所有元素都执行。 可能比较让人纠结点是,filter 函数中打印语句,是会对所有元素都执行?...而下半部分代码中 Sequence 正好解决了这个问题。 懒惰 Sequence 回顾一下下半部分代码。...每取一个元素时候,通过上一级迭代器 next() 方法,再执行自己 transformer() 变换操作。 所以.........当调用 toList() 操作,使用链式操作末端操作符产生 Sequence 迭代器进行迭代时,会递归调用到最上层第一个 Sequence 迭代器,而在调用每一个上级迭代器时,同时又会执行自身操作符对应操作...欢迎在评论区留下你答案。 往期推荐 让你迷惑 Kotlin 代码(1) 让你迷惑 Kotlin 代码(2) 让你迷惑 Kotlin 代码(3)

34930

新手学习 react 迷惑点(一)

,还反人类啥,所以我打算写两篇文章来讲新手学习 React 时候容易迷惑点写出来,如果你还以其他对于学习 React 很迷惑点,可以在留言区里给我留言。...为什么要用 className 而不用 class React 一开始理念是想与浏览器 DOM API 保持一直而不是 HTML,因为 JSX 是 JS 扩展,而不是用来代替 HTML ,这样会和元素创建更为接近...,而不使用 HTML 属性名称命名约定。...仍然是没法用。...后记 这是这个系列第一篇,这些问题也是在我一个「React交流群」里大家提出来一些他们刚学 react 时候容易迷惑点,下一篇不出意外就是解答以下迷惑点,如果有其他问题想知道,欢迎在评论区留言

68230

令人困惑strtotime

经常会有人被strtotime结合-1 month, +1 month, next month时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题....用时候就会很慌… 这不, 刚刚就有人在微博上又问我: 鸟哥,今天是2018-07-31 执行代码: date("Y-m-d",strtotime("-1 month")) 怎么输出是2018-07-01...好吧, 虽然这个问题看起来很迷惑, 但从内部逻辑上来说呢, 其实是”对”, 你先别着急哈, 让我慢慢讲: 我们来模拟下date内部对于这种事情处理逻辑: 1...., 都可能会有这个迷惑, 我们也可以很轻松验证类似的其他月份, 印证这个结论: var_dump(date("Y-m-d", strtotime("-1 month", strtotime("2017..., 你可以使用mktime之类, 把所有的日子忽略掉, 比如都限定为每月1号就可以了, 只不过就不如直接用first day来更加优雅. 现在, 搞清楚了内部原理, 是不是就不慌了?

42320

令人赞叹位运算

想必大家每次阅读第三方源码时,都觉得其中位运算很酷,让人神往又抓狂。为了搞懂那些操作具体含义,想去深入了解那些魔法代码背后原理。...之前我也写过一篇文章谈了一些面试中可能遇到算法题,今天更多是一些用法总结。...五,求绝对值 整数绝对值是其本身,负数绝对值正好可以对其进行取反加一求得,即我们首先判断其符号位(整数右移 31 位得到 ),然后根据符号进行相应操作int int abs(int a) {...统计二进制1个数可以分别获取每个二进制位数,然后再统计其1个数,此方法效率比较低。...总体而言,虽然这些技巧有的提高了性能,有的简化了代码,但不是所有代码都那么好理解,大家还需要结合实际场景去理解这些技巧,从实际题目中去找到它们优势,它们意义。happy coding~

39310

(转) 别再对 Angular 表单 ControlValueAccessor 感到迷惑

),你需要把更新值传给这个回调函数,这样对应 Angular 表单控件值也会更新(译者注:这一点可以参考 Angular 它自己写 DefaultValueAccessor 写法是如何把 input...我们将使用上文提到 jQuery UI 库 slider 插件,来实现一个自定义表单控件吧。...由于我们将实现是新组件通信方式,所以不需要标准输入输出属性绑定方式,那就移除相关代码吧。...(译者注:作者先实现标准输入输出属性绑定通信方式,又要删除,主要是为了引入新表单组件交互方式,即 ControlValueAccessor。)...image.png 如果你把简单封装和 controlValueAccessor 封装进行比较,你会发现父子组件交互方式是不一样,尽管封装组件与 slider 组件交互是一样

3.8K20

大风起兮,元宇宙迷惑与野望

——《雪崩》 如今,元宇宙就像是一枚仍在空中翻转硬币。 经历过2021年热火朝天势头后,元宇宙2022年照旧不平静。...和互联网历次代际变迁情形一样,彷徨、躁动、盲目、乐观等各种情绪杂糅在一起。 偶然出现利好,可能掀起一场猛烈旋风,让置身其中创业者迅速晋身为独角兽。...以计算技术为例,堪称元宇宙“能量”,很多元宇宙虚实融合场景,要实现沉浸式体验,对于算力挑战极大。...如果说计算是元宇宙太阳,提供源源不断能量;那么存储就是元宇宙“土壤”,保存着元宇宙所有数据,为上层应用提供持续“养分”。...这也给元宇宙产业提出了更高要求,既需要百花齐放繁荣态势,也要拿出用户愿意买单产品体验,通过充满新鲜感场景,尽快找到产品顿悟时刻,推动元宇宙飞轮持续转动,走出落地前 “黑障区”。

22210

令人困惑TensorFlow!

Javascript 是一种全功能编程语言,可以做各种美妙事情。HTML 是用于表示某种类型实用计算抽象(此处指可由 Web 浏览器呈现内容)框架。...会话有着那样令人困惑殊荣是因为其反直觉命名却又普遍存在—几乎每个 TensorFlow 呈现都至少一次明确地调用 tf.Session()。...它允许我们构建大型「多用途」计算图,这些计算图使用单个共享核心节点集合,并根据所采取不同计算路径去做不同事情。...一个更方便方法是使用 tf.Print 语句。令人困惑是,tf.Print 实际上是一种具有输出和副作用 Tensorflow 节点!它有两个必需参数:要复制节点和要打印内容列表。...「要复制节点」可以是图中任何节点;tf.Print 是一个与「要复制节点」相关恒等操作,意味着输出是输入副本。但是,它副作用是打印出「打印列表」里所有当前值。

1.2K30

这行代码打印结果确实让人迷惑

今天再分享读者代码。...因此,参数i地方都为5,其他两个位置分别为6和4。 注意,这里i值最终变为了5。...因此,从左到有,输出值分别为5,6,4,5 总结 但是,对于同一个变量不同操作在同一条语句中写法是自找麻烦。...关于这一点,我在《你可能不知道printf》也有更多描述。 所以,传入参数,绝对不能依赖他们计算顺序。...拿本例来说,传入i++和i作为参数,无论计算顺序如何,都不应该影响最终结果,但是事实是,并非如此,因此导致了一个看起来很奇怪结果。 再次强调!不要写这样代码!不要写这样代码!不要写这样代码!

41520

新手学习 react 迷惑点(完整版)

JSX,或者对 ES6 一些特性理解得不够深刻,导致觉得有些点难以理解,然后说 React 比较难上手,还反人类啥,所以我打算写两篇文章来讲新手学习 React 时候容易迷惑点写出来,如果你还以其他对于学习...React 很迷惑点,可以在留言区里给我留言。...为什么要用 className 而不用 class React 一开始理念是想与浏览器 DOM API 保持一直而不是 HTML,因为 JSX 是 JS 扩展,而不是用来代替 HTML ,这样会和元素创建更为接近...你会发现最终结果输出是 undefined,如果你不理解为什么输出是 undefined,那么还是上面说,需要去深刻理解 this 原理。...为了做性能优化,将 state 更新延缓到最后批量合并再去渲染对于应用性能优化是有极大好处,如果每次状态改变都去重新渲染真实 dom,那么它将带来巨大性能消耗。 4.

1.2K20

新手学习 react 迷惑点(完整版)

JSX,或者对 ES6 一些特性理解得不够深刻,导致觉得有些点难以理解,然后说 React 比较难上手,还反人类啥,所以我打算写两篇文章来讲新手学习 React 时候容易迷惑点写出来,如果你还以其他对于学习...React 很迷惑点,可以在留言区里给我留言。...为什么要用 className 而不用 class React 一开始理念是想与浏览器 DOM API 保持一直而不是 HTML,因为 JSX 是 JS 扩展,而不是用来代替 HTML ,这样会和元素创建更为接近...你会发现最终结果输出是 undefined,如果你不理解为什么输出是 undefined,那么还是上面说,需要去深刻理解 this 原理。...为了做性能优化,将 state 更新延缓到最后批量合并再去渲染对于应用性能优化是有极大好处,如果每次状态改变都去重新渲染真实 dom,那么它将带来巨大性能消耗。 4.

94620

不要再被MYSQLINT(M)给迷惑

MYSQL里有些比较隐晦知识点,经常被稀里糊涂用错而不自知。以前评审过程发生次数较多,索性随手写一些出来。前人栽个树,后人一定要乘凉啊!...表设计使用整型时,经常发现定义int括号里M是五花八门。误区是,不少人把M当成了数据库中存储最大长度,而实际上这个代表是显示宽度。只要是int类型,在数据库里存储就一定是4个字节。...因为只有用了这个属性,显示宽度才有存在意义。 zerofill作用说明: 1....声明为zerofill数值列,默认会自动加上 unsigned(无符号) 属性。这个很容易理解,在一个负号前填充0是没什么意义。 上例子。 ?...列才可以产生效果; 重申 > 若觉得使用int有点浪费,比如状态列,那可以使用tinyint, 千万不要想当然以为int(1)存是就一位数字,还沾沾自喜觉得节省了存储空间。

1.5K31

新手学习 react 迷惑点(完整版)

JSX,或者对 ES6 一些特性理解得不够深刻,导致觉得有些点难以理解,然后说 React 比较难上手,还反人类啥,所以我打算写两篇文章来讲新手学习 React 时候容易迷惑点写出来,如果你还以其他对于学习...React 很迷惑点,可以在留言区里给我留言。...为什么要用 className 而不用 class React 一开始理念是想与浏览器 DOM API 保持一直而不是 HTML,因为 JSX 是 JS 扩展,而不是用来代替 HTML ,这样会和元素创建更为接近...你会发现最终结果输出是 undefined,如果你不理解为什么输出是 undefined,那么还是上面说,需要去深刻理解 this 原理。...为了做性能优化,将 state 更新延缓到最后批量合并再去渲染对于应用性能优化是有极大好处,如果每次状态改变都去重新渲染真实 dom,那么它将带来巨大性能消耗。 4.

83310
领券