我在音速pi中的音量变量没有变化-为什么?

TheCodedMaster多维数据集

我有一些声音pi代码,应该演奏8次旋律,每次演奏都较柔和。但是,它没有注意该变量。我做错了吗?

8.times do
  i = 1
  play 50, amp: 0.1 * i
  sleep 0.25
  play 55, amp: 0.2 * i
  sleep 0.25
  play 57, amp: 0.4 * i
  sleep 0.25
  play 62, amp: i
  i = i - 0.125
end
托德·雅各布斯

问题

您的代码至少存在三个问题:

  1. 您的i变量是块局部的,因此它不在块外传播。这可能不是一个严重的问题,但是它使调试代码变得更加困难。
  2. 您正在使用显式重置每个循环顶部的ii = 1
  3. 该块不会记住两次调用之间i,因此放在块i ||= 1.0的顶部也不起作用,因为在每次循环开始时i始终为n。

考虑以下现有代码的最小示例:

8.times { i = 1; i -= 0.125 }
i # NameError (undefined local variable or method `i' for main:Object)

即使您对块中的i进行内省,您也会看到它永远不会随着当前逻辑而递减。

解决方案

解决问题的最简单方法是在块外设置i的初始值例如:

i = 1.0

8.times do
  i -= 0.125
  p i
end

i
#=> 0.0

使用Kernel#p语句,您可以看到数字递减计数:

0.875
0.75
0.625
0.5
0.375
0.25
0.125
0.0

您还可以看到变量现在可以在块外部访问,并且在块退出后访问变量时不再返回NameError。

i
#=> 0.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么变量会变化?

来自分类Java

为什么我的变量没有超出范围?

来自分类Dev

为什么“ ..”可以在字符向量变量中传递列名?

来自分类Dev

为什么我的变量没有初始化值?

来自分类Dev

为什么我用于UIBarButtonItem的UIButton的高度没有变化?

来自分类Dev

为什么我的变量没有在我的Makefile中扩展?

来自分类Dev

为什么我的sed命令没有调出变量c?

来自分类Dev

为什么输出没有变化?

来自分类Dev

为什么在下面的代码中“ someVariable”变量的值没有变化

来自分类Dev

为什么我的for循环不递增,为什么我的接头没有变化?

来自分类Dev

为什么没有在功能组件中获得我期望的变量,这是什么原因?

来自分类Dev

为什么即使我通过引用传递,变量的值也没有变化

来自分类Dev

为什么图像没有变化?

来自分类Dev

为什么我的变量没有更新?

来自分类Dev

为什么我的局部变量没有被覆盖?

来自分类Dev

为什么我的变量没有变化?

来自分类Dev

为什么我的按钮高度没有变化?

来自分类Dev

为什么我的HTML元素的大小没有变化

来自分类Dev

为什么合并中补丁中没有任何变化?

来自分类Dev

为什么Java中的值没有变化

来自分类Dev

为什么我的变量没有打印到屏幕上?

来自分类Dev

为什么我的变量没有增加?

来自分类Dev

为什么我没有收到从 JS 到 PHP 的变量?

来自分类Dev

为什么变量修改后没有变化?

来自分类Dev

为什么我的布尔变量没有设置为 True?

来自分类Dev

为什么我的 python 全局变量没有改变?

来自分类Dev

为什么我的全局变量似乎没有改变?

来自分类Dev

为什么变量在功能上没有变化

来自分类Dev

为什么我们在 React js 中定义常量变量时使用花括号?

Related 相关文章

  1. 1

    为什么变量会变化?

  2. 2

    为什么我的变量没有超出范围?

  3. 3

    为什么“ ..”可以在字符向量变量中传递列名?

  4. 4

    为什么我的变量没有初始化值?

  5. 5

    为什么我用于UIBarButtonItem的UIButton的高度没有变化?

  6. 6

    为什么我的变量没有在我的Makefile中扩展?

  7. 7

    为什么我的sed命令没有调出变量c?

  8. 8

    为什么输出没有变化?

  9. 9

    为什么在下面的代码中“ someVariable”变量的值没有变化

  10. 10

    为什么我的for循环不递增,为什么我的接头没有变化?

  11. 11

    为什么没有在功能组件中获得我期望的变量,这是什么原因?

  12. 12

    为什么即使我通过引用传递,变量的值也没有变化

  13. 13

    为什么图像没有变化?

  14. 14

    为什么我的变量没有更新?

  15. 15

    为什么我的局部变量没有被覆盖?

  16. 16

    为什么我的变量没有变化?

  17. 17

    为什么我的按钮高度没有变化?

  18. 18

    为什么我的HTML元素的大小没有变化

  19. 19

    为什么合并中补丁中没有任何变化?

  20. 20

    为什么Java中的值没有变化

  21. 21

    为什么我的变量没有打印到屏幕上?

  22. 22

    为什么我的变量没有增加?

  23. 23

    为什么我没有收到从 JS 到 PHP 的变量?

  24. 24

    为什么变量修改后没有变化?

  25. 25

    为什么我的布尔变量没有设置为 True?

  26. 26

    为什么我的 python 全局变量没有改变?

  27. 27

    为什么我的全局变量似乎没有改变?

  28. 28

    为什么变量在功能上没有变化

  29. 29

    为什么我们在 React js 中定义常量变量时使用花括号?

热门标签

归档