当前位置: 首页 > 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.dtcms.com/a/299035.html

相关文章:

  • Java 问题排查之工具单
  • MCP协议深度解析:客户端-服务器架构的技术创新
  • 零基础 “入坑” Java--- 十四、【练习】图书小系统
  • 力扣---------238. 除自身以外数组的乘积
  • mysql group by 多个行转换为一个字段
  • Java动态调试技术原理
  • Oracle 11g RAC数据库实例重启的两种方式
  • 机器学习——随机森林算法分类问题案例解析(sklearn)
  • SpringMVC——建立连接
  • Python高级入门Day6
  • (React入门上手——指北指南学习(第一节)
  • Earth靶机攻略
  • 公域流量向私域流量转化策略研究——基于开源AI智能客服、AI智能名片与S2B2C商城小程序的融合应用
  • 分治算法 (Divide and Conquer)原理、及示例-JS版
  • 告别配置混乱!Spring Boot 中 Properties 与 YAML 的深度解析与最佳实践
  • C++查询mysql数据
  • linux下变更mysql的数据文件目录
  • CentOS 7 安装 MySQL 8.4.6(二进制包)指南
  • 基于MySQL实现基础图数据库
  • Day04–链表–24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II
  • GMP模型
  • 背包问题及 LIS 优化
  • 口腔助手|口腔挂号预约小程序|基于微信小程序的口腔门诊预约系统的设计与实现(源码+数据库+文档)
  • vue子组件关闭自己的方式(事件触发)
  • 上证50指数分红和股指期货有什么关系?
  • MybatisPlus-18.插件功能-分页插件基本用法
  • Vue3 学习教程,从入门到精通,Vue3 样式绑定语法详解与案例(17)
  • 学习随想录-- web3学习入门计划
  • 【自动化运维神器Ansible】Ansible常用模块之File模块详解
  • 收银系统优惠功能架构:可扩展设计指南(含可扩展性思路与落地细节)