自定义函数☞(缺省值)怎么设置?
mfp吧
全部回复
仅看楼主
level 13
自定义函数如:function myf(x,y,z),
调用该函数,当y,z缺省,只输入x值,即:myf(x)时,有意义
2016年07月25日 04点07分 1
level 13
当y,z不存在时,myf(x)也能得到返回值。
2016年07月25日 04点07分 2
不知道。
2016年07月25日 04点07分
对了,输入的时候可以把后面两个写作0。 如myf(x,0,0),写程序的时候判断y和z的值来判断需不需要计算y和z。
2016年07月25日 04点07分
@喂wswswsws 谢谢啊! 但是写0也算输入了值啊,即y=0,z=0,我要的效果是,比如:在fread(fd, buffer, from, length)4个参数中,出现fread(fd),fread(fd,buffer)都是合法的,且都有返回值。
2016年07月25日 05点07分
@喂wswswsws 要解决的是:怎样用函数来判断参数y,z为空值,当其为空值时,也能得到返回值
2016年07月25日 05点07分
level 13
[哈哈]呃,重新编一个函数
function myf(x)就解决了,即function myf(x)与function myf(x,y,z)同时存在。
2016年07月25日 06点07分 3
函数名相同,参数略有不同
2016年07月25日 06点07分
@喂wswswsws 嗯,也只能先这样了,以后再想想。
2016年07月25日 09点07分
@😄二师兄他师哥 其实早该想到了。可编程科学计算器的内置函数就是这样区分的。
2016年07月25日 09点07分
@喂wswswsws 同意你的看法,我也是在manual文件夹中的io and file libs 例子examples中得到启发。
2016年07月25日 09点07分
level 13
function f_xsjq(s)//读取文件,全文内容(英文)显示
variablef1 = fopen(s, "rb","UTF-8")
variable n=get_file_size(s)
variable mat = alloc_array(n)
fread(f1, mat, 0, n)//fread(f1, mat)
variable str = conv_ints_to_str(mat)
return str//printf("%s\n",str)//print(str)
fclose(f1)
endf
function f_xsjq(s,x,y)//读取文件,内容(英文)部分显示
variablef1 = fopen(s, "rb","UTF-8")
variable n=get_file_size(s)
variable mat = alloc_array(n)
fread(f1,mat)
if(or(x<0,y<0,x+y>n))
return "get_file_size("+s+")=="+n+"; "+x+","+y+"输入错误"
else
variable str=strsub(conv_ints_to_str(mat),x,y)
return str//printf("%s\n",str)//print(str)
endif
fclose(f1)
endf
2016年07月25日 06点07分 5
s⇒文本路径字符串 x⇒截取起点(非负整数) y⇒截取长度(非负整数)
2016年07月25日 06点07分
1