此问题与:How to read API documentation for newbs?有关。但是,这个问题并没有涵盖我在这里询问的具有嵌套括号的特定格式(例如,data[i]
# [1] "sim1_1"
head(sim1_1$epi$tx.full.supp[1])
# sim1
# 1 0
# 2 0
# 3 0
# 4 0
# 5 0
# 6 0
head(data[i]$epi$tx.full.supp[1])
# Error in data[i]$epi : $ operator is invalid for atomic vectors
)。
虽然,我认为这可能与任何API有关,但我正在查看D3.js API,特别是transition.ease()
。我无法弄清楚以下含义:
[value[, args]]
很难找到,因为我不知道谷歌的搜索条件!我只是想知道:
我知道如何使用D3功能;它只是我感兴趣的符号。
答案 0 :(得分:3)
transition.ease([value[, arguments]])
的文档似乎使他们试图说出的内容相对清晰。此外,它遵循[]
中具有可选参数的方法的“常规”语法。
在这种情况下,这意味着ease()
是transition
的方法。对于ease()
方法:([value[, arguments]])
,表示传递任何参数都是可选的。然后,value[, arguments]
旨在表示如果存在value
参数,则可以选择性地存在无限制数量的附加arguments
。我说“意图是指”,因为通常可以使用椭圆...
来表示参数的倍数。因此,通常是:value[, arguments...]
。通过进一步查看文档,很明显这就是预期的目的。
解析文档(我的其他格式):
指定转换easing function。
如果 value 是一个函数,它用于简化当前参数时序值 t ,通常在[0,1]范围内。 (在转换结束时, t 可能略大于1.)
您可以将函数作为参数传递给transition.ease()
。如果这样做,则将其用作确定转换发生方式的函数。
否则,假设 value 是一个字符串,并将参数传递给d3.ease方法以生成缓动函数。默认的缓动功能是“立方输出”。请注意,无法自定义每元素或每个属性的缓动函数;但是,如果使用“线性”缓动功能,则可以使用attrTween或styleTween在插补器内应用自定义缓动。
如果value
不是函数,则假定您将使用d3.ease()
作为转换函数。在这种情况下,transition.ease()
的所有参数都会传递给d3.ease()
。 d3.ease()
假设value
(type
写入中称为d3.ease()
)是一个字符串。 d3.ease(type[, arguments…])
能够获取其他可选参数。为了让您指定d3.ease()
函数所需的任何其他参数,transition.ease()
也可以接受此类参数并将其传递给d3.ease()
。
注意:查看transition.ease()
和d3.ease()
之间的互动,我们看到transition.ease([value[, arguments]])
确实应该用椭圆写为transition.ease([value[, arguments..]])
。如果这不是预期用途,那么所描述的与d3.ease()
的互动将没有意义。
如果未指定 ease ,则返回绑定到转换中第一个非null元素的缓动函数。
这实际上并不清楚。我希望它包含一个错误,“ ease ”应该是“ value ”。在这种情况下,它会读取:
如果未指定 value ,则返回绑定到转换中第一个非null元素的缓动函数。
如果这实际上是预期的,那么不指定transition.ease()
的任何参数将导致返回值作为返回值,该函数绑定到转换中的第一个非null元素。这将是正常和预期使用不向这样的函数提供任何参数。因此,我认为这个问题很可能是文档中的错误。这可以通过查看源代码或通过实验来验证。
答案 1 :(得分:-1)
这意味着value
和arguments
是可选的。