返回顶部
首页 > 资讯 > 精选 >我用 go 编写的递归函数有什么问题?
  • 895
分享到

我用 go 编写的递归函数有什么问题?

2024-02-06 10:02:25 895人浏览 八月长安
摘要

问题内容 我正在通过《the Go 编程语言》一书学习 golang,在第 5 章第 5.3 节(多个返回值)练习 5.5 中,我必须实现函数 countWordandimages,该

问题内容

我正在通过《the Go 编程语言》一书学习 golang,在第 5 章第 5.3 节(多个返回值)练习 5.5 中,我必须实现函数 countWordandimages,该函数从 (golang.org/x/ net) 包中,并计算 html 文件中的单词和图像数量,我实现了以下函数,但出于某种原因,我收到每个 wordsimages 返回变量的 0 值

func countWordsAndImages(n *html.node) (words, images int) {
    if n.Type == html.TextNode {
        words += wordCount(n.Data)
    } else if n.Type == html.ElementNode && n.Data == "img" { // if tag is img on element node
        images++
    }
    for c := n.FirstChild; c != nil; c = n.NextSibling {
        tmp_words, tmp_images := countWordsAndImages(c)
        words, images = words+tmp_words, images+tmp_images
    }
    return words, images
}

func wordCount(s string) int {
    n := 0
    scan := bufio.NewScanner(strings.NewReader(s))
    scan.Split(bufio.ScanWords)
    for scan.Scan() {
        n++
    }
    return n
}

我试图避免在函数中命名返回变量元组 ((int, int))。


正确答案


使用 c.nextsibling 前进到下一个兄弟,而不是 n.nextsibling

for c := n.FirstChild; c != nil; c = c.NextSibling {
    ⋮

https://www.PHP.cn/link/e7364a5abd2a860cf8e33b114369b92b

以上就是我用 go 编写的递归函数有什么问题?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 我用 go 编写的递归函数有什么问题?

本文链接: https://lsjlt.com/news/561399.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 我用 go 编写的递归函数有什么问题?
    问题内容 我正在通过《the go 编程语言》一书学习 golang,在第 5 章第 5.3 节(多个返回值)练习 5.5 中,我必须实现函数 countwordandimages,该...
    99+
    2024-02-06
  • C++ 函数的递归实现:如何使用递归来解决数学问题?
    递归是一种函数调用自身的编程技巧,用于解决复杂问题。在数学问题中,递归应用广泛,例如:计算阶乘:fac++torial(n) = n * factorial(n-1) if n >...
    99+
    2024-04-22
    c++ 递归 堆栈溢出
  • 解决python递归函数及递归次数受到限制的问题
    目录递归函数及递归次数受到限制求和:sum=n+n(n-1)+…+1求阶乘:n!=1x2x3…xn解决问题的办法是修改可递归的次数如何控制递归的次数第一种...
    99+
    2024-04-02
  • C++ 函数的递归实现:如何避免递归爆炸问题?
    避免递归爆炸策略:尾递归优化:将函数末尾的递归调用转换为循环。备忘录化:存储已计算结果,避免重复调用。迭代实现:使用循环代替递归调用。 C++ 函数的递归实现:避免递归爆炸 递归是计算...
    99+
    2024-04-22
    c++ 函数递归
  • 怎么用matlab写一个递归函数
    在MATLAB中,你可以使用以下步骤来编写递归函数:1. 定义函数:使用`function`关键字定义函数,并为函数命名。2. 编写...
    99+
    2023-08-19
    matlab
  • 如何使用Lambda表达式编写递归函数
    这篇文章主要介绍“如何使用Lambda表达式编写递归函数”,在日常操作中,相信很多人在如何使用Lambda表达式编写递归函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Lambda表达式编写递归函数...
    99+
    2023-06-17
  • C++ 函数递归详解:递归在编程竞赛中的应用
    递归是一种函数自调用技术,它基于更小的实例解决问题,然后组合结果解决原始问题。其优点包括代码简洁和解决自相似问题的能力,缺点是可能导致堆栈溢出。斐波那契数列等问题可以通过递归函数轻松计算...
    99+
    2024-05-04
    c++ 递归 堆栈溢出
  • C++ 函数的递归实现:递归在编程竞赛中的应用?
    递归是一种函数调用自身解决问题的技术,包含基线条件以终止递归。在 c++++ 中,可使用关键字 return 返回函数值并终止递归。递归可用于解决经典问题,如汉诺塔问题,其中它将 n 个...
    99+
    2024-04-22
    c++ 递归
  • java递归函数返回值问题怎么解决
    在递归函数中,可以使用一个参数或者一个全局变量来保存计算结果,然后在递归调用的过程中更新这个参数或者变量的值,最终返回最终的结果。例...
    99+
    2023-09-26
    java
  • python中的递归函数是什么
    这篇文章将为大家详细讲解有关python中的递归函数是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代...
    99+
    2023-06-14
  • C++ 函数的递归实现:递归的常见用法有哪些?
    递归是一种函数调用自身的技术,广泛应用于分步求解问题的场景。在 c++++ 中,递归有以下常见用法:求解斐波那契数列计算阶乘计算排列组合遍历树形结构解决迷宫求解问题 C++ 函数的递归...
    99+
    2024-04-22
    递归 c++函数 c++ 排列
  • Python函数的递归方法是什么
    本篇内容介绍了“Python函数的递归方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!函数调用自身的 编程技巧 称为递归。1.1、递...
    99+
    2023-06-22
  • python递归函数的特点是什么
    Python递归函数的特点包括:1. 函数可以调用自身:递归函数可以在函数体内直接调用自身,从而实现对问题的重复求解。2. 递归函数...
    99+
    2023-08-29
    python
  • PHP 函数的递归规则是什么?
    php 中创建递归函数的规则:定义递归情况:明确函数递归调用的条件。提供基本情况:函数不应递归调用的条件。递减递归深度:每次递归调用时减少嵌套级别,避免无限递归。 PHP 函数的递归规...
    99+
    2024-04-11
    php 递归规则 堆栈溢出
  • C++ 递归函数的栈溢出问题如何解决?
    针对 c++++ 递归函数的栈溢出问题,解决方法有:缩小递归深度、减小栈帧大小、尾递归优化。如 fibonacci 数列函数通过尾递归优化可避免栈溢出。 C++ 递归函数的栈溢出问题如...
    99+
    2024-04-17
    c++ 递归函数
  • matlab递归调用函数的方法是什么
    在MATLAB中,递归调用函数的方法与其他编程语言类似。要使用递归调用函数,首先需要定义一个函数,并在函数体内调用自身。以下是一个简...
    99+
    2023-08-19
    matlab
  • JS的递归函数怎么使用
    这篇文章主要介绍了JS的递归函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS的递归函数怎么使用文章都会有所收获,下面我们一起来看看吧。编程语言中,函数Func(T...
    99+
    2024-04-02
  • php递归函数是什么及怎么使用
    本篇内容主要讲解“php递归函数是什么及怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php递归函数是什么及怎么使用”吧!在php中,递归函数指的是自调用函数,也就是函数在函数体内部直接...
    99+
    2023-06-30
  • C++ 递归函数的泛型编程应用场景?
    泛型递归函数通过模板定义,允许函数在指定类型时定义其行为。例如,泛型函数 find 可用于在链表中查找元素,它接受链表指针和目标值作为参数,直到找到目标值或到达链表末尾。 C++ 递归...
    99+
    2024-04-17
    c++ 泛型编程
  • Python的递归函数与匿名函数调用方法是什么
    本篇内容主要讲解“Python的递归函数与匿名函数调用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的递归函数与匿名函数调用方法是什么”吧!一. 递归函数  a) 引言:在...
    99+
    2023-06-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作