Ruby中百分号管道运算符的含义是什么,如“%|”?

前端之家收集整理的这篇文章主要介绍了Ruby中百分号管道运算符的含义是什么,如“%|”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试理解 this site上提供的脚本:
#!/usr/bin/env ruby

require ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'

def terminal_script_filepath
  %|tell application "Terminal"
      activate
      do script "jsc -i #{e_as(e_sh(ENV['TM_FILEPATH']))}"
    end tell|
end

open("|osascript","w") { |io| io << terminal_script_filepath }

最重要的是,函数terminal_script_filepath开头的部分:

%| …
… |

……以及“解析”的地方:

{ |io| io << terminal_script_filepath }

这里使用了哪些Ruby概念?

我知道带管道的open()可以帮助我将输入提供给进程的STDIN,但输入如何从terminal_script_filepath转到io?我也知道basic % operations with strings,就像%w一样,但管道在这里做什么?

解决方法

这是一个字符串.在ruby中,您可以通过各种方式定义字符串.单引号或双引号是最常见的,%s是另一种.您还可以使用此脚本中使用的任何分隔符定义字符串.例如,%^也是字符串^,或%$也是字符串$.您只需确保不在字符串中使用这些字符.

<<<在这种情况下,它被用作连接操作,将字符串附加到文件,或者在这种情况下,是一个侦听AppleScript的管道.

猜你在找的Ruby相关文章