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

不要被“学会”的假象迷惑

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

44410

Rust 让人迷惑的 “借用”

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

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

    让你迷惑的 Kotlin 代码(3)

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

    50340

    让你迷惑的 Kotlin 代码(1)

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

    37430

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

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

    1.8K20

    让你迷惑的 Kotlin 代码(4)

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

    36430

    新手学习 react 迷惑的点(一)

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

    71030

    令人困惑的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来的更加优雅. 现在, 搞清楚了内部原理, 是不是就不慌了?

    43820

    令人赞叹的位运算

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

    41410

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

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

    23210

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

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

    3.8K20

    令人困惑的TensorFlow!

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

    1.2K30

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

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

    1.2K20

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

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

    42920

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

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

    95320

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

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

    85010

    不要再被MYSQL的INT(M)给迷惑了

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

    1.5K31

    令人惊艳的最短路问题

    输入 输入的第一行包含3个正整数,分别表示、、分别表示数列的长度、的下界、的上界。输入的第二行包含N个整数,即数列的值。 输出 输出一个整数,表示有多少可以使等式存在非负整数解。...当我们拿到这个式子的时候我们对这个式子可以有什么不同意义上的解释,例如两个多项式的积,如果往这方面想的话显然会涉及到 、等多项式全家桶的一些东西,但本题的式子并不是一个多项式,而是一个方程,右边的值是给你的而不是我们要求的...首先我们关注到、的范围 显然我们不能依靠枚举去解决这个东西,而考虑到我们是在计算合法的的个数,这个区间性质是满足可加减的,我们可以很自然的想到运用前缀和的思想即可。...接下来就是非常神奇的事情了: 我们以余数,建立点集,用来表示余数为的的值,到达一个新的点时可以向周围连接条边来计算新的余数。拿样例举例: ,; 选,则点集为,, ?...图论的强大,在于在每种问题的背后都能看见它的影子。希望这道题能给大家带来思想上的启发。

    41220
    领券