返回顶部
首页 > 资讯 > 后端开发 > GO >为什么Go没有计算整数绝对值的函数?
  • 134
分享到

为什么Go没有计算整数绝对值的函数?

2024-04-04 23:04:19 134人浏览 薄情痞子
摘要

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《为什么Go没有计算整数绝对值的函

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《为什么Go没有计算整数绝对值的函数?》,文章讲解的知识点主要包括,如果你对golang方面的知识点感兴趣,就不要错过编程网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

go中为什么没有直接计算整数数据类型绝对值的函数?目前,所有整数值都必须类型转换为 float64,然后传递给 math.abs​​(),它返回一个 float64,它再次必须类型转换为整数。

此代码引发 ./prog.go:12:39: cannot use x (type int64) as type float64 in argument to math.abs​​ 错误,因为 go 是静态类型语言,因此它不允许使用不同的类型数据类型:

package main

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println("Hello, playground")
    var x int64 = -10
    
    fmt.Println("Abolute value ", math.Abs(x))  
}


解决方案


From Go's FAQ,

标准库的目的是支持运行时、连接到操作系统并提供许多 go 程序所需的关键功能,例如格式化 i/o 和网络。它还包含对 WEB 编程很重要的元素,包括加密以及对 HttpJSON 和 xml 等标准的支持。

没有明确的标准来定义包含的内容,因为很长一段时间以来,这是唯一的 go 库。然而,有一些标准定义了今天添加的内容。

标准库中新增的内容很少,而且纳入的门槛很高。标准库中包含的代码需要承担大量的持续维护成本(通常由原作者以外的人承担),受到 go 1 兼容性承诺的约束(阻止修复 api 中的任何缺陷),并且受到 go 版本的约束安排,防止错误修复快速提供给用户。

大多数新代码应该位于标准库之外,并且可以通过 go 工具的 go get 命令访问。这样的代码可以有自己的维护者、发布周期和兼容性保证。用户可以在 godoc.org 上找到软件包并阅读其文档。

为了回应创建数学包的浮点函数的整数版本是多么容易,go 团队成员 Russ Cox once quipped,

ceil、floor 和 trunc 更加简单!

一个合理的解释是,由于这个函数编写起来很简单(如果 x < 0, x = -x),因此它不符合包含标准。与float version比较:

func abs(x float64) float64 {
    return float64frombits(float64bits(x) &^ (1 << 63))
}

这是有用但也不明显的,这是将其包含在标准库中的一个令人信服的理由。

绝对值只是绝对差的一种特殊情况 [1],其中 第二个值为零。这是整数的绝对值函数,以及 整数的绝对差函数。奖金是绝对差异 无符号整数函数:

package math

func absInt(x int) int {
   return absDiffInt(x, 0)
}

func absDiffInt(x, y int) int {
   if x < y {
      return y - x
   }
   return x - y
}

func absDiffUint(x, y uint) uint {
   if x < y {
      return y - x
   }
   return x - y
}
  1. https://wikipedia.org/wiki/Absolute_difference

以上就是《为什么Go没有计算整数绝对值的函数?》的详细内容,更多关于的资料请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 为什么Go没有计算整数绝对值的函数?

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

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

猜你喜欢
  • 为什么Go没有计算整数绝对值的函数?
    编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《为什么Go没有计算整数绝对值的函...
    99+
    2024-04-04
  • oracle绝对值函数的用法是什么
    在 Oracle 数据库中,绝对值函数的用法是使用 ABS 函数来返回一个数的绝对值。ABS 函数接受一个数值作为参数,并返回该数的...
    99+
    2024-04-09
    oracle
  • python中怎么求函数的绝对值
    在python中使用abs函数求函数的绝对值,具体方法如下:abs:abs()函数的作用是返回数字的绝对值。abs()函数语法:abs( x )abs()函数使用方法:print "abs(-45) : ", abs(-45)print "...
    99+
    2024-04-02
  • 为什么Java中负数的绝对值不一定是正数
    这篇文章主要讲解了“为什么Java中负数的绝对值不一定是正数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“为什么Java中负数的绝对值不一定是正数”吧!绝对值是指一个数在数轴上所对应点到原点...
    99+
    2023-06-20
  • python中为什么没有dict函数
    python中是存在dict函数的,dict()函数的作用是用于创建一个字典。dict()函数语法:class dict(**kwarg)class dict(mapping, **kwarg)class&nb...
    99+
    2024-04-02
  • python中为什么没有cmp函数
    python中是存在cmp函数的,cmp()函数是用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。cmp()函数语法:cmp( x, y )cmp()函数使用方法:print "...
    99+
    2024-04-02
  • 没有返回值的Go函数如何修改数据?
    来到编程网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《没有返回值的Go函数如何修改数据?》,介绍一下,希望对大家的知识积累有所帮助,助力实战开...
    99+
    2024-04-05
  • Python中为什么没有函数重载
    本篇内容主要讲解“Python中为什么没有函数重载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中为什么没有函数重载”吧!题目:Python中为什么没有函数重载?点评:C++、Jav...
    99+
    2023-06-01
  • 为什么golang中没有函数重载?
    go 语言中不允许函数重载,原因如下:简化编译器实现提高代码可读性避免名称冲突go 中可以使用可变参数列表或接口来实现类似函数重载的行为。 Go 中没有函数重载的原因 在 Go 语言中...
    99+
    2024-04-30
    golang 函数重载 代码可读性
  • 标准库中为什么没有math.Round函数?
    ...
    99+
    2024-04-02
  • 如果将没有值的列作为参数传递,MySQL SUM() 函数的输出是什么?
    当 MySQL SUM() 函数获取一个没有值的列作为参数时,它将返回 NULL,而不是 0 作为输出。该列可以是任何数据类型。按照以下示例,使用名为“social”的表,该表只有一列名为“id”且没有值的列,将对其进行说明示例mysql&...
    99+
    2023-10-22
  • 详细聊一聊为什么Python没有main函数
    目录前言为什么必须强制main函数作为入口?总结前言 众所周知,Python中没有所谓的main函数,但是网上经常有文章提到“ Python的main函数”和...
    99+
    2023-03-19
    python没有main python没有main函数怎么运行 python没有主函数
  • javascript中没有名称的函数是什么
    这篇文章主要讲解了“javascript中没有名称的函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中没有名称的函数是什么”吧!在javascript中,没有名称...
    99+
    2023-06-14
  • Python没有main函数的原因是什么
    为什么必须强制main函数作为入口?这些语言都是编译语言,需要将代码编译成可执行的二进制文件。为了让操作系统/引导程序找到程序的开头,需要定义这样一个函数。简而言之,需要在大量可执行的代码中定义一个至关重要的的开头。不难看出,对于这些语言来...
    99+
    2023-05-14
    Python main
  • 为什么PHP中的函数是对象编程算法的关键?
    在PHP中,函数是对象编程算法的关键。这是因为函数可以作为对象来使用,从而使得PHP代码更加灵活和可扩展。在本文中,我们将深入探讨PHP中函数作为对象编程算法的关键,并演示一些代码示例。 首先,让我们了解一下函数作为对象的概念。在PHP中,...
    99+
    2023-10-10
    对象 编程算法 函数
  • 为什么PHP中的函数对于对象编程算法非常重要?
    PHP是一种被广泛使用的编程语言,因其易学易用而备受开发者青睐。在PHP中,函数是一种非常重要的编程元素,特别是在面向对象编程中。本文将探讨为什么PHP中的函数对于对象编程算法非常重要。 首先,让我们简单了解一下面向对象编程(OOP)的基础...
    99+
    2023-10-10
    对象 编程算法 函数
  • 云服务器算固定资产吗为什么没有数据
    云服务器是一种虚拟服务器,通常用于存储数据。它们通常由多个计算机组成,形成一个虚拟的集群系统,每个计算机都具有独立的存储空间和服务器。这些计算机可以在不同的物理位置上存储数据,从而使得数据可以保存在多个位置,不需要占用额外的物理空间。此外,...
    99+
    2023-10-26
    固定资产 服务器 数据
  • 实时计算需求:PHP中的大数据函数有哪些值得推荐?
    在当今的大数据时代,实时计算已成为许多企业数据处理的必要需求。PHP是一种常用的Web编程语言,也被广泛应用于大数据计算领域。本文将介绍PHP中一些值得推荐的大数据函数。 array_reduce() array_reduce()函数...
    99+
    2023-10-22
    大数据 函数 实时
  • Python中没有main函数的原因是什么
    Python中没有main函数的原因是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为什么必须强制执行主函数这些语言是已编译的语言,需要将代码编译到可执行的二进制文件中,以...
    99+
    2023-06-16
  • php中把对象转为数组的函数是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php中把对象转为数组的函数是“get_object_vars()”。get_object_vars()函数用于获取给定对象的属性,并返回由对象属性组成的关联数组。但如...
    99+
    2019-02-01
    php 对象转数组
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作