加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

斯卡拉 – 这是一个纯粹的功能吗?

发布时间:2020-12-16 18:06:56 所属栏目:安全 来源:网络整理
导读:我有以下功能: def timestamp(key: String) : String = Monoid.combine(key,Instant.now().getEpochSecond.toString) 并想知道,如果它是纯粹的或不是?对我来说一个纯函数是,给定相同的输入返回总是相同的输出.但上面的函数,总是给出相同的字符串将返回另一
我有以下功能:

def timestamp(key: String)
  : String
  = Monoid.combine(key,Instant.now().getEpochSecond.toString)

并想知道,如果它是纯粹的或不是?对我来说一个纯函数是,给定相同的输入返回总是相同的输出.但上面的函数,总是给出相同的字符串将返回另一个字符串与另一个时间,在我看来,它是不纯的.

解决方法

不,我所知道的任何定义都不是纯粹的.关于纯函数的一个很好的讨论在这里: https://alvinalexander.com/scala/fp-book/definition-of-pure-function.在Alvin对纯度的定义中,他说:

A pure function has no “back doors,” which means:

It cannot depend on any external I/O. It can’t rely on input from files,databases,web services,UIs,etc; it can’t produce output,such as writing to a file,database,or web service,writing to a screen,etc.

读取当前系统的时间使用I / O因此它不纯.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读