betway必威-betway必威官方网站
做最好的网站

比如详解Go语言中os库的常用函数用法,深刻剖析

0 1 1 2 3 5 8 13 21 34

数字阶乘示例

复制代码 代码如下:

func main() {
   recursion()
}

当上述代码编译和执行时,它产生以下结果:

(f *File).Seek()这个函数大家一看就懂了,就是偏移指针的地址,函数的原型是func (f *File) Seek(offset int64, whence int) (ret int64, err error) 其中offset是文件指针的位置 whence为0时代表相对文件开始的位置,1代表相对当前位置,2代表相对文件结尾的位置 ret返回的是现在指针的位置

import (
    "fmt"
    "os"
    "strings"
    "unicode/utf8"
)

0112358132134

import (
 "fmt"
 "os"
)

}

Go编程语言支持递归,即函数调用自身的函数。 但是在使用递归时,程序员需要注意在函数中定义或设置一个退出条件,否则它会进入无限循环。

func main() {
 f, _ := os.Open("11.go")
 b := make([]byte, 20)
 n, _ := f.ReadAt(b, 15)
 fmt.Println(n)
 fmt.Println(string(b[:n]))
}

    if first != last {
        return false
    }  
    return doPalindrome(word[sizeOfFirst : len(word)-sizeOfLast])
}

下面是另一个例子,它使用递归函数按给定数字生成斐波那契数列:

复制代码 代码如下:

复制代码 代码如下:

递归函数非常有用,可用于解决许多数学问题,如计算数字的阶乘,生成斐波那契数列等。

func main() {
 f, err := os.Open("src") //打开一个目录
 if err != nil {
  fmt.Println(err)
 }
 defer f.Close()
 ff, _ := f.Readdir(10)    //设置读取的数量 <=0是读取所有的文件 返回的[]fileinfo
 for i, fi := range ff {
  fmt.Printf("filename %d: % vn", i, fi.Name())  //我们输出文件的名称
 }
}

递归是以相似的方式重复项目的过程。同样适用于编程语言中,如果一个程序可以让你调用同一个函数被调用的函数,递归调用函数内使用如下。

funcrecursion(){recursion()/* function calls itself */}funcmain(){recursion()}

您可能感兴趣的文章:

  • Go语言中函数的参数传递与调用的基本方法
  • Go语言的os包中常用函数初步归纳
  • Go语言常见哈希函数的使用
  • Go语言里的new函数用法分析
  • Go语言截取字符串函数用法
  • Go语言中普通函数与方法的区别分析
  • Go语言中append函数用法分析
  • GO语言延迟函数defer用法分析
  • Go语言中的流程控制结构和函数详解
  • Go语言函数学习教程

复制代码 代码如下:

packagemainimport"fmt"funcfibonaci(iint)(retint){ifi==0{return0}ifi==1{return1}returnfibonaci(i-1) fibonaci(i-2)}funcmain(){variintfori=0;i<10;i {fmt.Printf("%d ",fibonaci(i))}}

import (
 "fmt"
 "os"
)

复制代码 代码如下:

packagemainimport"fmt"funcfactorial(iint)int{if(i<=1){return1}returni*factorial(i-1)}funcmain(){variint=15fmt.Printf("Factorial of %d is %d",i,factorial(i))}

import (
 "fmt"
 "os"
)

递归函数是解决许多数学问题想计算一个数阶乘非常有用的,产生斐波系列等

递归是以自相似的方式重复项的过程。这同样适用于其它编程语言,在编程语言中允许在函数内调用同一个函数称为递归调用,如下所示。

func main() {
 f, _ := os.Open("1.go")
 fmt.Println(f.Name()) //输出1.go
}

func doPalindrome(s string) bool {
    if utf8.RuneCountInString(s) <= 1 {
        return true
    }  

Factorial of15is2004310016

(f *File).WriteString()这个很简单了,写入字符串函数原型func (f *File) WriteString(s string) (ret int, err error)返回值一样的了

package main

下面是一个例子,它使用递归函数来计算给定数字的阶乘:

(f *File) Write像文件中写入内容,函数原型func (f *File) Write(b []byte) (n int, err error)返回的是n写入的字节数

让我们编译和运行上面的程序,这将产生以下结果:

当上述代码编译和执行时,它产生以下结果:

func main() {
 f, _ := os.OpenFile("2.go", os.O_RDWR, os.ModePerm)
 n, _ := f.WriteString("hello word widuu") //写入字符串
 fmt.Println(n)
 b := make([]byte, n)
 f.Seek(0, 0)    //一定要把偏移地址归0否则就一直在写入的结尾处
 c, _ := f.Read(b)
 fmt.Println(string(b[:c])) //返回hello word widuu
}

本文由betway必威发布于编程开发,转载请注明出处:比如详解Go语言中os库的常用函数用法,深刻剖析

TAG标签: betway必威
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。