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

程序怎么表达“没有”

在团队里展开了一个讨论——程序要不要表达“没有”,和怎么表达“没有”。本文就是讨论中一些关键内容的总结啦。 能不能不要“没有”? 很简单——不能。”没有“这个概念是业务上非常普遍存在的现象。...用"--"表示没有数据 在业务开发中,不管用什么开发语言,一般都会用空来表示“没有”,比如Java中的null,MySQL中的NULL,js中的null和undefined,Python中的None等等...这段解释了最早null引用是怎么来的,以及这个东西对随后几十年软件工业带来的无数闹心的问题。 静态类型语言强调“尽可能的在编译期找到程序的错误”,而null这个奇葩的存在无疑是与这个目标对着干。...比如C++,你如果这样写: char * p = 123; 编译器会告诉你123不是个表示字符数据的地址,这很好。...使用其他语言的该怎么办 Java目前看最好的方案就是半吊子的Optional了。

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

    项目没用过设计模式?看看 Nest.js 怎么用的

    不知道大家是否在代码用过设计模式呢?...如果不知道怎么用的话,不妨来看下 Nest.js怎么用的吧: 案例 1 Nest.js 除了支持跑一个单独的 http 服务之外,还支持微服务,微服务一般就不是直接处理 http 了,可能是和 Redis...各种不同中间件的客户端连接方式不同,而 Nest.js 希望把它们统一管理起来。 怎么统一管理呢?...官网有如何创建自定义传输策略的代码,也是继承 Server 实现 CustomTransportStrategy: 之后你想使用自己创建的策略类的话就可以这样: 源码做了对自定义 strategy...案例 2 Nest.js 其实本身并不处理 http 协议,处理 http 是依赖更底层的 Express 实现的,但是它又不想和 Express 强耦合。 怎么办呢?

    1.5K40

    js 函数柯化(Currying)

    原文链接:https://blog.spiritling.cn/posts/c0f17b1f/ 在计算机科学中,柯化(Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数...从一道面试题谈谈函数柯化从一道面试题谈谈函数柯化 题目:使用 js 实现 add(1)(2)(3)(4) 返回 10 函数柯化要求多个参数转为单一参数,所以相当于 function add()..._add.getResult = function () { return result; }; return _add; }; 这样通过上面函数就可以实现基本的柯化要求...当然有了,在 js 中函数是有原型链的,所以每个函数都继承了基本的一些方法。 当你定义一个函数后,你如果打印时只输入函数名,并不执行,则函数内部信息就被打印出来。...结束 通过上面的研究,解决一个函数柯化问题。

    1.5K20

    JS中的柯

    作为函数式编程语言,JS带来了很多语言上的有趣特性,比如柯化和反柯化。 这里可以对照另外一篇介绍 JS 反柯化 的文章一起看~ 1....is cheap,看看怎么实现吧~ 2....以上柯化函数已经能解决一般需求了,但是如果要多层的柯化总不能不断地进行currying函数的嵌套吧,我们希望经过柯化之后的函数每次只传递一个或者多个参数,那该怎么做呢: function curryingHelper...也可以使用下划线来指定未确定的参数 var sendPost = sendAjax( _ , _ , { type: "POST", contentType: "application/json" }) JS...高级程序设计 JS中的柯化(currying) 前端开发者进阶之函数柯化Currying 浅析 JavaScript 中的 函数 currying 柯化 掌握JavaScript函数的柯化 函数式

    4.6K20

    Power Query的数据怎么无法返回Excel了?

    最近,又一大波朋友开始接触Power Query,于是,在操作过程中频发基础问题,对于这些问题,我在前期的基础文章基本都有涉及,但因为问题本身比较简单,所以并没有独立成相应的文章,但是,...小新:我在Power Query处理完的数据怎么无法返回Excel了啊? 大海:哦?还有这种事情? 小新:你看,这里的“关闭并上载至...“按钮都灰掉了。 大海:啊。原来是这个问题。...Power Query的数据上载后,在Power Query就不能直接改数据的上载方式了。但是,可以回到Excel改。非常简单: 1. 在数据菜单单击“显示查询” 2....大海:其实,这些内容在我前期的基础文章都有涉及,而且都不厌其烦不怕重复地写了所有操作步骤。所以,建议先去把我原来写的一些基础系列的文章跟着练一遍。 小新:好的。一定好好看!

    2.6K10

    怎么理解JS Promise

    我们来看看MDN怎么说: onFulfilled 当Promise变成接受状态(fulfillment)时,该参数作为回调函数被调用(参考: Function)。...js异步操作是通过js的事件循环机制EventLoop实现的。...对于异步任务来说,当其可以被执行时,会被放到一个 任务队列(task queue) 等待JS引擎去执行。...当执行栈中的所有同步任务完成后,JS引擎才会去任务队列查看是否有任务存在,并将任务放到执行栈中去执行,执行完了又会去任务队列查看是否有已经可以执行的任务。...总结起来js引擎对程序的执行顺序是:1。先执行同步任务的程序 2。 在执行异步任务的微任务 3。所有微任务都执行完了后就执行异步的宏任务,但这里是一个一个宏任务去执行,不是一下子执行完。

    11.7K30

    js 高阶函数之柯

    博客地址:https://ainyi.com/74 定义 在计算机科学中,柯化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术...call / apply 直接执行有所不同 动态创建函数 有一种典型的应用情景是这样的,每次调用函数都需要进行一次判断,但其实第一次判断计算之后,后续调用并不需要再次判断,这种情况下就非常适合使用柯化方案来处理...function (type, el, fn) { // 关键 el.attachEvent('on' + type, fn) } } })() 上面这种实现方案就是一种典型的柯化应用...始终将 Object.prototype.toString 设置为传入参数,其实等价于 Object.prototype.toString.call() 实现 Currying 函数 可以理解所谓的柯化函数...=> {}).length; // 0 const fn = (...args) => { console.log(args.length); } fn(1, 2, 3) // 3 所以在柯化的场景中

    2.8K40

    MongoDB系列之Docker运行JS脚本

    不过因为安全问题,所以端口没对外开放出来,所以不用使用比如Navicat这些客户端软件,所以执行脚本就要到命令窗口执行,执行脚本不长还好,太长的话,复制到shell窗口一大串要很长时间 因为装在docker,...文件,然后用命令执行 先从MongoDB数据库导出js脚本,然后在js脚本文件,在其最前面加上连接数据库的代码: conn = new Mongo("127.0.0.1:27017"); db =...conn.getDB("test"); 然后保存,使用docker命令复制js文件到MongoDB容器 docker cp /opt/test.js 0ac56ae108c0:/opt/test.js...然后使用mongo命令执行js脚本,注意是要到MongoDB容器执行 # 到/opt目录 cd /opt # 执行js脚本 mongo test.js 总结:本博客需要一些docker基础,没遇到这个问题的读者...MongoDB容器,在使用命令直接执行js文件,速度很快

    1.6K30

    js化-面试手写版

    概念用我自己的话来总结一下,函数柯化的意思就是你可以一次传很多参数给curry函数,也可以分多次传递,curry函数每次都会返回一个函数去处理剩下的参数,一直到返回最后的结果。...实例 这里还是举几个例子来说明一下:柯化求和函数 // 普通方式 var add1 = function(a, b, c){ return a + b + c; }...也许你想问,我不想每次都使用那个丑陋的括号结尾怎么办?...} // 参数收集完毕,则执行func return func.apply(this, _args); }} 这里是对参数个数进行了计算,如果需要无限参数怎么办...React在回家的路上我一直在想函数柯化是不是可以扩展到更多场景,我想把函数换成react组件试试?我想到了高阶组件和redux的connect,这两个确实是将柯化思想用到react里面的体现。

    69810
    领券