golang ioutil.WriteFile函数perm参数的用法

golang ioutil.WriteFile函数perm参数的用法,第1张

golang ioutilWriteFile函数perm参数的用法

ioutilWriteFile(, perm osFileMode)

刚开始接触golang的文件API的时候,总是纳闷为什么在创建文件的时候需要显示的指定文件的perm属性,难道不能从系统的umask里面获取吗?

实际上ioutilWriteFile在创建新文件时,并不是直接使用参数perm的值,而是要和umask的值做合并的。把函数参数的值合并到当前umask的值,才是最终创建出来文件的perm属性。

例如

umask为空,所以ioutilWriteFile的perm属性就是最后的文件属性

umask为0777,所以ioutilWriteFile的perm属性全被disable掉了

umask为0000,所以ioutilWriteFile的perm属性就是最后的文件属性

umask为0640,而ioutilWriteFile的perm属性也是640,正好全部被关闭了,最后生成的文件没有任何属性。

即ioutilWriteFile在写文件时,如果目标文件已经存在,那么目标文件的perm属性不会被改动,即此时ioutilWriteFile的参数perm会被忽略。

注意一点就明白了,touch命令使用的是0666的属性,它并没有给X(executable)属性置值,所以不管在umask中对executable位是否置1,touch命令就不能生成一个具有executable的文件。

最主要的区别是:slice支持负数的下标(代表从字符串结尾开始算位置),substring不支持

substring() 方法用于提取字符串中介于两个指定下标之间的字符。主要用于字符串截取

stringObjectsubstring(start,stop)

start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

end:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

如果省略该参数,那么返回的子串会一直到字符串的结尾。

例如:"abcdefg"substring(3,5)返回de,字符串的第3个字符是d(从0开始,即a是第0个字符),截取到第5个字符前(不包括第5个)

与 slice()方法不同的是,substring() 不接受负的参数。

slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

stringObjectslice(start,end)

start:要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

end:紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。

我想提问者问的可能时类似于这种形式的方法:

func (p myint) mydouble() int {

//方法体

}

如果确实如此的话,应当首先明确一点的是,golang不同于java、python和C++这些语言。golang语言中函数和方法是两种不同的概念。具体解释起来内容比较多,请移步网页链接查看详细说明

public class Test01 {//新建一个类 String s = new String("good");//创建一个对象名字为s内容为good String[] ss = {"aaa"};//创建一个名为ss的数组只有1个数量内容为aaa public void m_method(String str,String[] sa) {//设置一个公共的无返回值的名为m_method的函数 ()里面是参数 str = "bad";//把bad赋值给str sa[0]="bbb";把bbb赋值给sa的第一个数组对象 } public static void main(String[] args) {//程序入口 Test01 t1 = new Test01();//在Test01里创建一个名为t1的对象 t1m_method(t1s,t1ss);//对象t1调用test01的m_method函数,t1s也就是test01类的s也就是good作为第一个参数,t1ss也就是test01类里面的ss也就是aaa作为第二个参数进行运行 Systemoutprintln(t1s+t1ss[0]); //输出t1s的值和t1ss[0]的值; }

golang >

rHandleFunc("/kpi/kate",func(w >

以上就是关于golang ioutil.WriteFile函数perm参数的用法全部的内容,包括:golang ioutil.WriteFile函数perm参数的用法、golang中数组和slice作为参数的区别、golang函数名前面的参数是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9306957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存