当前位置: 首页 > news >正文

好的编程语言设计是用简洁清晰的原语组合复杂功能

首先,函数命名要user friendly,比如最常用的控制台输入输出,input scanf gets read readln readline print println writeline… 我专门询问了chatgpt,让它给出流行度百分比最高的组合(ai干这个最在行):input print,次常用的读写文本文件:read write,如此四个函数名就搞定了。

然后,功能相近的可以合在一个函数,比如,read有五种格式:

  1. string read(number fp)
  2. null read(number fp, function cb)
  3. string read(string name)
  4. string read(string name, boolean iscmd)
  5. null read(string name, function cb)
  6. null read(string name, boolean iscmd, function cb)

可以用文件指针fpfopen/popen)操作,也可以直接文件名/命令行(以iscmd区分,结束自动fclose/pclose)如果有cb,则为按行读,每一行作为参数调用cb,如果无,则读取整个文件作为返回值。

那么就可以很灵活地不同组合,比如print(read("foo.txt"))read("foo.txt", print)

再比如正则表达式匹配array match(string str, string pat),可以利用展开语法和format函数一起实现替换功能:

print(format("${0}\n${1}\n${2}\n${3}",...match("Unknown-14886@noemail.invalid","^([\\w\\.-]+)\\@([\\w-]+)\\.([a-zA-Z\\w]+)$")));
http://www.lryc.cn/news/600716.html

相关文章:

  • 消息缓存系统
  • JavaEE初阶第十一期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(九)
  • 《计算机组成原理与汇编语言程序设计》实验报告二 基本数字逻辑及汉字显示
  • 告别配置混乱!Spring Boot 中 Properties 与 YAML 的深度解析与最佳实践
  • 非定长滑动窗口(持续更新)
  • Netty中AbstractChannelHandlerContext源码分析
  • C++连接MySQL完整教程
  • easy-llm-cli的安装和使用
  • Ubuntu安装node-red
  • 广东省省考备考(第五十七天7.26)——数量、言语(强化训练)
  • 【CTF-PWN】【攻防世界题目pwnstack】python攻击脚本ret(checksec、pwngdb、IDA)(含“/bin/sh“)
  • Traffic Lights set的使用
  • AI Agent开发学习系列 - langchain之LCEL(5):如何创建一个Agent?
  • Ansible列出常见操作系统的发行版,Ansible中使用facts变量的两种方式
  • 定义域第一题
  • InfluxDB Flux 查询协议实战应用(二)
  • 修改site-packages位置与pip配置
  • 网络:应用层
  • docker安装问题汇总
  • 一文速通《多元函数微分学》
  • AI Agent开发学习系列 - langchain之LCEL(4):Memory
  • x86汇编语言入门基础(三)汇编指令篇5 串操作
  • 【架构】Docker简单认知构建
  • JAVA学习-练习试用Java实现“深度优先搜索(DFS):实现八数码问题的解法(最短路径搜索)”
  • LangChain4j低阶+高阶Api+日志配置+监听器+重试机制+超时机制
  • 【LeetCode 热题 100】131. 分割回文串——回溯
  • 算法竞赛阶段二-数据结构(35)数据结构单链表模拟实现
  • Android-广播详解
  • golang实现一个定时引擎,功能包括按照corntab的时间任务实时增加、修改、删除定时任务
  • 常见sql深入优化( 二)