Golang 百题(实战快速掌握语法)_2

返回集合中满足指定条件的最后一个元素

本实验将实现判断给定集合中的元素是否符合,并返回符合的最后一个元素。

知识点
  • for
  • fmt.Error
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

我们可以使用 for 循环倒序遍历来进行查看,因为 Go 中参数可以为函数,所有我们使用判断函数来作为判断的参数传入主函数中,下面是一个例子。

package main

import "fmt"

func FindLastInt(arr []int, f func(int) bool) (int, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return 0, fmt.Errorf("No matches found")
}
func FindLastFloat64(arr []float64, f func(float64) bool) (float64, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return 0.0, fmt.Errorf("No matches found")
}
func FindLastBool(arr []bool, f func(bool) bool) (bool, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return false, fmt.Errorf("No matches found")
}
func FindLastString(arr []string, f func(string) bool) (string, error) {
    for i := len(arr) - 1; i >= 0; i-- {
        if f(arr[i]) {
            return arr[i], nil
        }
    }
    return "", fmt.Errorf("No matches found")
}
func main() {
    r1, ch1 := FindLastInt([]int{1, 1, 2}, func(x int) bool { return x%2 == 0 }) // 2 nil
    fmt.Println(r1, ch1)
}

该程序的功能:

  • 使用 for 循环逆序遍历给定的集合
  • 使用函数 f 来判断是否是符合条件的元素
  • 如果符合条件,则输出元素和 nil,否则输出 0 和错误信息
  • 使用fmt.Error()来生成错误

将代码保存为/home/project/findLast.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run findLast.go

总结

本实验我们学习了如何返回集合中满足指定条件的最后一个元素,下个实验我们将讲解如何对给定的集合进行分组。

对给定的集合进行分组

本实验将实现对输入的多个集合按照索引进行分组然后返回这个新的集合。

知识点
  • for
  • reflect
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们将使用...来对给定的多个集合按照索引进行整合,下面是一个例子。

package main

import (
    "fmt"
    "reflect"
)

func Zip(params ...interface{}) [][]interface{} {
    l := 0
    for i := range params {
        arr := reflect.ValueOf(params[i])
        if l < arr.Len() {
            l = arr.Len()
        }
    }
    r := make([][]interface{}, l)

    for i := 0; i < l; i++ {
        r[i] = make([]interface{}, 0)
        for j := range params {
            v := reflect.ValueOf(params[j])
            if v.Len() > i {
                r[i] = append(r[i], v.Index(i).Interface())
            }
        }
    }
    return r
}
func main() {
    s := []string{"a", "b"}
    i := []int{1, 2}
    b := []bool{true, false}
    r1 := Zip(s, i, b) // [[a 1 true] [b 2 false]]
    fmt.Println(r1)
}

该程序的功能:

  • 使用 make 创建一个二维interface{}数组,并将长度设置为最长的集合
  • 使用 for 循环来遍历给定的多个数组,然后把数组中相同索引的值加到设置的二维数组中。

将代码保存为/home/project/zip.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run zip.go

图片描述

总结

本实验我们学习了对多个给定的集合进行索引的分组,下个实验我们将讲解如何判断给定的字符串是否为回文。

判断是否为回文

回文是指正读和反读一样的字符,本实验将判断输入的字符串是否为回文。(本题样例不区分大小写只按正读和反读区分是否回文)

知识点
  • range
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

我们分别使用两个变量分别位于字符串的首尾,如果这两个变量相同则它们分别移动一次向中间靠拢,下面是具体的实现。

package main

import (
    "fmt"
    "strings"
)

func IsPalindrome(s string) bool {
    v := strings.ToLower(strings.Join(strings.Fields(s), ""))
    for i := range v {
        if v[len(v)-i-1] != v[i] {
            return false
        }
    }
    return true
}
func main() {
    r := IsPalindrome("taco cat")
    fmt.Println(r)
}

该程序的功能:

  • 使用strings.ToLower使得输入的字符串全部转为小写。
  • for 循环判断字符串的两侧。

将代码保存为/home/project/isPalindrome.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run isPalindrome.go

图片描述

总结

本实验我们学习了如何通过首尾参数来判断给定的字符串是否为回文,下个实验我们将学习如何连接同类型的切片。

连接切片

Go 语言中连接同种类型的不同切片,可以使用 append 函数,本实验将实现对输入的切片进行连接。

知识点
  • append
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

我们使用 append 和...来进行切片的连接,其中...的作用表示传入切片的多个值,通常用在接受多个不确定数量的参数和表示函数有多个不定参数的情况,下面是一个例子。

package main

import "fmt"

func ConcatInt(a, b []int) []int {
    return append(a, b...)
}
func ConcatFloat64(a, b []float64) []float64 {
    return append(a, b...)
}
func ConcatBool(a, b []bool) []bool {
    return append(a, b...)
}
func ConcatStrings(a, b []string) []string {
    return append(a, b...)
}
func main() {
    d1, d2 := []string{"a", "b", "c"}, []string{"d", "e"}
    r := ConcatStrings(d1, d2) // [a b c d e]
    fmt.Println("date1 ", d1, "\ndate2 ", d2, "\nresult: ", r)
}

该程序的功能:

  • 使用 append 和可变参数...来扩展 slice

将代码保存为/home/project/concat.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run concat.go

图片描述

总结

本实验我们学习了如何通过不定参数变量和 append 连接切片的方法,下个实验我们将讲解求多个数字的最大公约数。

求多个数字的最大公约数

本实验将求多个数字的最小公约数。

知识点
  • 递归
  • for
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

公约数是指能同时整除几个整数的数,本实验我们将两两遍历,把求得的公约数作为下一次循环的一项进行计算,下面是一个例子。

package main

import "fmt"

func gcd(x, y int) int {
    if y == 0 {
        return x
    }
    return gcd(y, x%y)
}

func GCD(nums ...int) int {
    r := nums[0]
    for _, num := range nums[1:] {
        r = gcd(r, num)
    }
    return r
}
func main() {
    r1 := GCD(8, 36)               // 4
    r2 := GCD([]int{11, 8, 32}...) // 1  这里的...为了将切片展开成可变参数
    fmt.Println(r1, r2)
}

该程序的功能:

  • 使用 gcd 函数创建一个递归。
  • 递归的返回条件是当 y 为 0 时,返回 x。
  • 使用 range 和 gcd 函数来为给定的每一个数字进行计算。

将代码保存为/home/project/gcd.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run gcd.go

图片描述

总结

本实验我们学习了如何求多个数字的最大公约数,下个实验我们将学习如何求多个数字的最小公倍数。

求多个数字的最小公倍数

两个或多个整数公有的倍数叫做它们的公倍数,最小公倍数是指其中除 0 以外最小的一个公倍数,本实验将实现通过递归求解多个数字的最小公倍数。

知识点
  • for
  • 递归
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们将使用递归来获得多个数字的最小公倍数,下面是一个例子。

package main

import (
    "fmt"
)

func gcd(x, y int) int {
    if y == 0 {
        return x
    }
    return gcd(y, x%y)
}

func LCM(nums ...int) int {
    x := nums[0]
    for _, y := range nums[1:] {
        x = (x * y) / gcd(x, y)
    }
    return x
}
func main() {
    r1 := LCM(12, 7)                // 84
    r2 := LCM([]int{1, 3, 4, 5}...) // 60
    fmt.Println(r1, r2)
}

该程序的功能:

  • 使用 gcd 函数创建一个递归。
  • 递归的返回条件是当 y 为 0 时,返回 x。
  • 使用 range 和 gcd 函数来为给定的每一个数字进行计算。

将代码保存为/home/project/lcm.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run lcm.go

图片描述

总结

本实验我们讲解了如何求多个数组的最小公倍数,下个实验我们将学习返回指定范围内的切片。

返回指定范围内的切片

本实验将给定一个起始终止,递增的范围。返回指定范围的切片。

知识点
  • range
  • fmt
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们输入起始,终止和递增的范围,来生成指定范围内的切片,下面是一个例子。

package main

import (
    "fmt"
)

func IntRange(f, t, s int) []int {
    arr := make([]int, (t-f+1)/s)
    for i := range arr {
        arr[i] = i*s + f
    }
    return arr
}
func main() {
    r1 := IntRange(0, 9, 2)
    fmt.Println(r1)
}

该程序的功能:

  • 使用 make 创建一个适合大小的切片
  • 使用 range 来迭代切片并且填充。

将代码保存为/home/project/intRange.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run intRange.go

图片描述

总结

本实验我们学习了如何返回指定范围内的切片,下一个实验我们将讲解如何获得指定范围内的随机切片。

返回指定范围内的随机切片

本实验我们将分别输入起始范围,终止范围来实现生成指定范围内的随机数组,这里随机我们使用的是 math/rand。

知识点
  • math/rand
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

本实验我们将使用math/rand包来生成指定范围的随机切片,下面是一个例子。

package main

import (
    "fmt"
    "math/rand"
)

func RandIntSliceInRange(min, max, n int) []int {
    arr := make([]int, n)

    for i := range arr {
        arr[i] = rand.Intn(max-min) + min //随机范围切片
    }
    return arr
}
func main() {
    r1 := RandIntSliceInRange(12, 35, 10)
    fmt.Println(r1)
}

该程序的功能:

  • 使用make创建一个合适大小的切片。
  • 使用 range 来遍历切片,并且用 rand.Intn()来生成指定范围内的随机数添加到切片中。

将代码保存为/home/project/randIntSliceInRange.go文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run randIntSliceInRange.go

图片描述

总结

本实验我们使用 rand 生成了一个指定范围内的切片,下一个实验我们将讲解如何求集合中的中位数。

求集合中的中位数

中位数是按顺序排列的一组数据中居于中间位置的数,本实验我们将通过使用 sort 函数和 for 循环获得集合的中位数。

知识点
  • sort
  • for
适合人群

本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。

许可证

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

代码实例

Go 语言 Sort 包下的 Float64s 函数可以对输入的集合进行升序排序列,用法如下:

func Float64s(a []float64)

下面我们将使用 sort 来求给定集合的中位数,下面是一个例子。

package main

import (
    "fmt"
    "math"
    "sort"
)

func Median(nums ...float64) float64 {
    m, n := int(math.Floor(float64(len(nums))/2.0)),
        nums[:]   //Floor将结果向下取整
    sort.Float64s(n)

    if len(nums)%2 == 0 {
        return (n[m-1] + n[m]) / 2.0
    }
    return n[m]
}
func main() {
    r1 := Median(5.0, 6.0, 50.0, 1.0, -5.0)
    r2 := Median(1.0, 2.0, 4.0, 5.0)
    fmt.Println("中位数:", r1, "中位数:", r2)
}

该程序的功能:

  • 找到中位数 m。
  • 使用 sort.Float64s 来对 nums 进行排序。
  • 分情况进行判断,如果是偶数则返回俩个中位数的平均数。

将代码保存为 /home/project/median.go 文件。

运行程序

打开 WebIDE 的 Terminal 终端,输入以下命令查看输出:

go run median.go

图片描述

总结

本实验我们学习了使用 sort 包和 for 循环获得集合中位数的方法,了解他们的实验原理我们才能更好的使用他们。

转换 Lisp 式字符串

挑战介绍

把输入的字符串转换为烤肉串式类型。

挑战内容

本次挑战中,你需要把输入的字符串转换为烤肉串式类型。

输出参考格式为:

# 输入
some text
# 输出
some-text

挑战要求

  • 请自行在环境主目录/home/project下新建 convert_lisp.go 文件,并复制示例代码到文件中完成补充。补充完整后点击「提交检测」,系统将会给出判定结果。

图片描述

示例代码

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
    "strings"
)

func main() {
    fmt.Println("Input strings: ")
    inp := bufio.NewReader(os.Stdin)

    // res 为输出的Lisp字符串
    // s为输入的字符串
    var res string
    s, err := inp.ReadString('\n')
    if err != nil {
        log.Fatal("wrong input")
    }
    // 待补充部分


    fmt.Println(res)
}

小贴士

  • 可以使用 strings 包下的功能函数来进行处理。
  • 为了保证能被系统准确检测,挑战中的每一句话都非常重要,请仔细阅读。跳跃式浏览易导致挑战无法按要求通过。
参考代码

以下内容仅供参考,为了能有更好的学习效果,请尽量按自己的想法来完成挑战。

参考答案

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
    "strings"
)

func main() {
    fmt.Println("Input strings: ")
    inp := bufio.NewReader(os.Stdin)

    // res 为输出的Lisp字符串
    // s为输入的字符串
    var res string
    s, err := inp.ReadString('\n')
    if err != nil {
        log.Fatal("wrong input")
    }
    res = strings.Join(strings.Fields(s), "-")
    fmt.Println(res)
}

版权说明

内容编译来自 psampaz和30s-seconds-of-golang 的开源项目,它们分别使用 CC BY-SA 4.0 License,CC0-1.0 License,为了能够适合实验楼在线环境,我们修改了部分解题和单元测试代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/750594.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows安装nvm

文章目录 前言一、NVM下载方式一&#xff1a;官网下载方式二&#xff1a;GitHub 下载 二、NVM安装三、Node安装四、配置 NVM 和 NodeJS4.1. 环境变量配置4.2 配置node_global和node_cache 前言 NVM&#xff08;Node Version Manager&#xff09;是一个命令行工具&#xff0c;用…

Redis队列自研组件

背景 年初的时候设计实践过一个课题&#xff1a;SpringBootRedis实现不重复消费的队列&#xff0c;并用它开发了一个年夜饭下单和制作的服务。不知道大家还有没有印象。完成这个课题后&#xff0c;我兴致勃勃的把它运用到了项目里面&#xff0c;可谁曾想&#xff0c;运行不久后…

phpMyAdmin 4.0.10 文件包含 -> getshell

phpMyAdmin 4.0.10 文件包含 -> getshell 前言&#xff1a;这里这个漏洞相对来说审计起来不是特别难&#xff0c;但是对于初学者还是有点挑战性的&#xff0c;从zkaq web课过来的小伙伴想挑战一下自己代码审计能力的话&#xff0c;可以直接跳到最后下载源码&#xff0c;聂风…

【总结】在SpringBoot项目中如何动态切换数据源、数据库?(可直接CV)

注意&#xff1a;文章若有错误的地方&#xff0c;欢迎评论区里面指正 &#x1f36d; 前言 本文参考若依源码&#xff0c;介绍了如何在SpringBoot项目中使用AOP和自定义注解实现MySQL主从数据库的动态切换&#xff0c;当从库故障时&#xff0c;能自动切换到主库&#xff0c;确…

手写SpringMVC之ApplicationContextListener

什么是Spring MVC&#xff1f; Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#xff0c;但它通常被称为“Spring MVC”。 手写…

SD-WAN解决多云环境的挑战

随着SD-WAN成为远程用户访问基于云的应用程序的主要途径&#xff0c;促使越来越多的部署多云环境以优化性能的企业、IT专业人员选择支持安全、低延迟且易于管理的SD-WAN技术。与此同时&#xff0c;SD-WAN供应商和云服务供应商之间的合作&#xff0c;有助于跨多个云供应商轻松管…

分别使用netty和apache.plc4x测试读取modbus协议的设备信号

记录一下常见的工业协议数据读取方法 目录 前言Modbus协议说明Netty 读取测试使用plc4x 读取测试结束语 前言 Modbus 是一种通讯协议&#xff0c;用于在工业控制系统中进行数据通信和控制。Modbus 协议主要分为两种常用的变体&#xff1a;Modbus RTU 和 Modbus TCP/IP Modbus …

基于51单片机太阳能风能风光互补路灯控制器

一.硬件方案 本设计由STC89C52单片机电路太阳能电池板电路风机发电电路锂电池充电保护电路升压电路稳压电路光敏电阻电路4位高亮LED灯电路2档拨动开关电路电源电路设计而成。 二.设计功能 &#xff08;1&#xff09;采用风机和太阳能电池板给锂电池充电&#xff0c;具有充电…

微服务开发 —— 项目环境搭建篇

环境搭建 Linux 环境搭建 Linux 环境搭建大家可以使用虚拟机 VMware、VirtualBox 等应用创建虚拟机&#xff0c;使用Vagrant也可以快捷搭建虚拟环境&#xff1b;Windows 中有 WSL2&#xff0c;Windows 中的 Docker 也对 WSL 进行了支持&#xff0c;也是一个不错的选择。或者可…

麒麟系统安装Redis

一、背景 如前文&#xff08;《麒麟系统安装MySQL》&#xff09;所述。 二、下载Redis源码 官方未提供麒麟系统的Redis软件&#xff0c;须下载源码编译。 下载地址&#xff1a;https://redis.io/downloads 6.2.14版本源码下载地址&#xff1a;https://download.redis.io/re…

构建LangChain应用程序的示例代码:46、使用 Meta-Prompt 构建自我改进代理的 LangChain 实现

Meta-Prompt 实现 摘要&#xff1a; 本文介绍了 Noah Goodman 提出的 Meta-Prompt 方法的 LangChain 实现&#xff0c;该方法用于构建能够自我反思和改进的智能代理。 核心思想&#xff1a; Meta-Prompt 的核心思想是促使代理反思自己的性能&#xff0c;并修改自己的指令。…

降低IT运营成本,提升客户体验 |LinkSLA亮相第十届CDIE

6月25-26日&#xff0c;中国数字化创新博览会&#xff08;CDIE 2024&#xff09;在上海张江科学会堂举行。本届展览主题为“AI创新&#xff0c;引领商业增长新格局”&#xff0c;旨在交流企业在数字化时代&#xff0c;如何以科技为驱动&#xff0c;在转型中如何把握机遇&#x…

文本编辑命令和正则表达式

一、 编辑文本的命令 正则表达式匹配的是文本内容&#xff0c;Linux的文本三剑客&#xff0c;都是针对文本内容。 文本三剑客 grep&#xff1a;过滤文本内容 sed&#xff1a;针对文本内容进行增删改查 &#xff08;本文不相关&#xff09; awk&#xff1a;按行取列 &#x…

Web服务器与Apache(虚拟主机基于ip、域名和端口号)

一、Web基础 1.HTML概述 HTML&#xff08;Hypertext Markup Language&#xff09;是一种标记语音,用于创建和组织Web页面的结构和内容&#xff0c;HTML是构建Web页面的基础&#xff0c;定义了页面的结构和内容&#xff0c;通过标记和元素来实现 2.HTML文件结构 <html>…

Transformer教程之什么是Transformer

在过去的几年里&#xff0c;Transformer 模型已经成为了自然语言处理&#xff08;NLP&#xff09;领域的主流技术。无论是机器翻译、文本生成还是语音识别&#xff0c;Transformer 都表现出了非凡的性能。那么&#xff0c;什么是 Transformer&#xff1f;它是如何工作的&#x…

LeetCode 剑指 Offer 40

// void help(int[] a,int l,int r,int k){ // if(k0) return; // if(r-l1 < k){ // for(int il;i<r;i){ // ans[cnt] a[i]; // } // return; // } // // 快排的基准值 // int base a[l]; // int i l, j r; // while(i<j){ // while(i<j &&…

1961 Springboot自习室预约系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 自习室预约管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库…

鸿蒙开发系统基础能力:【Timer (定时器)】

定时器 setTimeout setTimeout(handler[,delay[,…args]]): number 设置一个定时器&#xff0c;该定时器在定时器到期后执行一个函数。 参数 参数名类型必填说明handlerFunction是定时器到期后执行函数。delaynumber否延迟的毫秒数&#xff0c;函数的调用会在该延迟之后发生…

谷歌SEO在外贸推广中的应用效果如何?

谷歌SEO在外贸推广中非常有效。通过优化网站&#xff0c;可以提高在搜索结果中的排名&#xff0c;这意味着更多的潜在客户会看到你的产品和服务。 一个高排名的网站能带来更多自然流量&#xff0c;不需要花费广告费用。这种流量通常质量较高&#xff0c;因为用户是主动搜索相关…

Java 流式编程的7个技巧,必学!

作为Java开发者&#xff0c;我们还没有完全掌握Java Streams这个多功能工具的威力。在这里&#xff0c;你将发现一些有价值的技巧&#xff0c;可以作为参考并应用到你的下一个项目中。 Java Streams在很多年前就被引入了&#xff0c;但作为Java开发者&#xff0c;我们还没有完…