有没有什么方法把print("");这个双引号去掉?
可烦输入""这个了。我想要的就是比如输入print(abc); 直接就输出了。比如里面的字符串我不需要输入引号了。
以C为例,写个函数。
pr(ab){ //这里应该填啥类型呢?int float都不合适。形参如何写呢?
printf("%s",ab); //这里的占位符是%s,%d用什么格式输出呢?我只是想直接就打印出来不管他是字符也好,int型也好,float型也好。有没有这种方法?
}
本帖最后由 Broadm 于 2023-8-1 16:57 编辑
#define log(message) printf("%s", (#message))
int main()
{
log(你好啊);
}
使用宏啊,如上 Broadm 发表于 2023-8-1 16:53
#define log(message) printf("%s", (#message))
int main()
我去,大佬,膜拜。果然可以。 估计是输入法的锅,有的输入法会有自动补全功能,但是有的IDE或者编写工具也有自动补全的功能,自己摸索下吧 重写打印函数or类似函数
核心:自动判断传参的类型
C++语言貌似可以利用函数重载来实现,C的话不记得怎么搞的了 类 C 语言标准库里应该没有类似函数,可以上 GitHub 找找看
Python 的话不管什么都直接 print 就行 我印象中C语言很难实现这个功能,因为它太老了,需要明确指出输入的数据类型。
在C++里好一点,有函数重载机制,把需要输入的参数类型都写一个函数就可以了。而且已经有标准库,可以直接使用cout输出int、float、string等数据类型 强类型函数语言,制定了规则的同时,节省内存,这是没办法的事情。非要这样,就只能自定义原始函数库,不过有那工夫,还是老老实实敲引号得了吧。 自己写个类 不可以哦,这个是语言规则 我觉得问题关键不在于函数重载,而是说如何给字符串脱去括号,是不是使用 `print` 不是问题关键
换句话说,就是如何实现将字符串字面量脱去括号仍会被识别为一个字符串的问题
目前想到的要解决的问题有二:
1. 若不加引号,可能会解析成对作用域中成员的访问。如何在成员不存在的情况下返回一个字符串,可能代{过}{滤}理可以解决这个问题,Groovy 等语言实现起来倒能方便点,但 c。。。没研究过
2. 字符串允许包含的内容很多,但普遍各种编程语言的标识符格式是有限制的。如何不引起语法错误和歧义?
感觉要实现这个功能需要重写一门语言了 lq2007 发表于 2023-8-1 16:48
我觉得问题关键不在于函数重载,而是说如何给字符串脱去括号,是不是使用 `print` 不是问题关键
换 ...
:'(weeqw,我现在用的是rust.用C做的例子。因为都一样。所以C比较顺手就用C举的例子。