我设想一种真正的泛型语言,不知道这样的语言是否已经有了

ipqtjmqj 2016-03-15 04:45:44
最近学了js,它把整数型与浮点型合并成数值型, 字符与字符串也合并, 感觉很方便. 不过有个陷阱中了几次, 那就是原来应该接收字符串类型的收到了数值型, 然后用+连接字符串时就出错了. 这源于js明明分有几种类型,类型却不声明.

所以我想干脆只有一种基本数据类型, 这样就不用声明类型, 就是字符串,

发挥原来不同数据类型作用靠不同的运算符,
数值运算的加减乘除模用+-*/%
逻辑运算用&& || !
字符或字符串连接用#

因为基本数据类型只有一种, 所以不需要结构体了, 所以复合数据类型只需要增强版的数组(基于键值对的映射)

我想问一下这样的语言现在有吗
...全文
219 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-03-16
  • 打赏
  • 举报
回复
没有
paschen 2016-03-15
  • 打赏
  • 举报
回复
matlab 中 元组
ipqtjmqj 2016-03-15
  • 打赏
  • 举报
回复
引用 6 楼 ipqtjmqj 的回复:
[quote=引用 4 楼 super_admi 的回复:] 没看懂你的意思,又是“基本类型”,又是“字符串“类型,若按你的说法,你这里字符串都不是基本类型…… 不过我觉得你这里的一些思想,类似.net和Java 语言的设计:就是所有类型,都有一个共同的基类”Object",此基类提供一些最基本的方法,比如:toString().在实际应用中,Object可以是任意类型,可以做任何操作,但如果不考虑具体类型的情况,请问, “ipqtjmqj” && “ipqtjmqj”的值是什么?所以我说我不太明白楼主的想法。 如果楼主只是希望不定义而直接使用,VB就是这么搞的。在VB中,没有定义的类型,可以是任意类型,相当于js中的var.
1. 基本类型就是除了类,数组之外的语言内置类型(primitive type, 或buid-in type). 2. js中的字符串好像属于基本类型吧. 3. 如何操作数的值不符合要求, 有两种方式处理, 一是隐式转换, 如非空字符串全部转成false, 二是抛出异常, 就像 0作为除数一样[/quote] 更正, 第3点, 是"如果"不是"如何". 是true而不是false
  • 打赏
  • 举报
回复
lua也有tonumber tostring 有时候简单并不是一件好事,弱类型的都有一个问题,稍微上点规模,开发和维护效率急剧下降。
ipqtjmqj 2016-03-15
  • 打赏
  • 举报
回复
引用 4 楼 super_admi 的回复:
没看懂你的意思,又是“基本类型”,又是“字符串“类型,若按你的说法,你这里字符串都不是基本类型…… 不过我觉得你这里的一些思想,类似.net和Java 语言的设计:就是所有类型,都有一个共同的基类”Object",此基类提供一些最基本的方法,比如:toString().在实际应用中,Object可以是任意类型,可以做任何操作,但如果不考虑具体类型的情况,请问, “ipqtjmqj” && “ipqtjmqj”的值是什么?所以我说我不太明白楼主的想法。 如果楼主只是希望不定义而直接使用,VB就是这么搞的。在VB中,没有定义的类型,可以是任意类型,相当于js中的var.
1. 基本类型就是除了类,数组之外的语言内置类型(primitive type, 或buid-in type). 2. js中的字符串好像属于基本类型吧. 3. 如何操作数的值不符合要求, 有两种方式处理, 一是隐式转换, 如非空字符串全部转成false, 二是抛出异常, 就像 0作为除数一样
super_admi 2016-03-15
  • 打赏
  • 举报
回复
另外,如果楼主研究过JSON格式,那么JSON格式里就有这样的思想: “因为基本数据类型只有一种, 所以不需要结构体了, 所以复合数据类型只需要增强版的数组(基于键值对的映射)”
pengzhixi 2016-03-15
  • 打赏
  • 举报
回复
我了解的lua应该是符合你要求的
super_admi 2016-03-15
  • 打赏
  • 举报
回复
没看懂你的意思,又是“基本类型”,又是“字符串“类型,若按你的说法,你这里字符串都不是基本类型…… 不过我觉得你这里的一些思想,类似.net和Java 语言的设计:就是所有类型,都有一个共同的基类”Object",此基类提供一些最基本的方法,比如:toString().在实际应用中,Object可以是任意类型,可以做任何操作,但如果不考虑具体类型的情况,请问, “ipqtjmqj” && “ipqtjmqj”的值是什么?所以我说我不太明白楼主的想法。 如果楼主只是希望不定义而直接使用,VB就是这么搞的。在VB中,没有定义的类型,可以是任意类型,相当于js中的var.
ipqtjmqj 2016-03-15
  • 打赏
  • 举报
回复
引用 1 楼 pengzhixi 的回复:
很多脚本语言应该符合你要求吧
比如?最好是用的人比较多的
pengzhixi 2016-03-15
  • 打赏
  • 举报
回复
很多脚本语言应该符合你要求吧

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧