2

このブロックを考えると

fs: [
 usr [
  local [
   bin []
  ]
  share []
 ]
 bin []
]

次のようなパス表記を使用してアイテムを取得できます。

fs/usr/local

パスが文字列の場合、どうすれば同じことができますか?

path: "/usr/local"
find fs path ;does not work!
find fs to-path path ;does not work!
4

2 に答える 2

5

入力文字列パスを正しいルートで完成させてから、ロードして評価する必要があります。

>> path: "/usr/local"
>> insert path "fs"
>> do load path
== [
    bin []
]
于 2013-02-26T19:29:08.543 に答える
2

Rebolにはネイティブパスタイプがあることをご存知ですか?

これはあなたの質問に正確に答えるものではありませんが、Rebolでパスを直接使用する方法についてのリファレンスを追加したいと思いました。Rebolには多くのデータ型があり、可能であれば、その豊富な言語機能を活用する必要があります。特に方言を使い始めて構築するときは、どのタイプが存在し、どのように使用するかを知ることがさらに強力になります。

これは、文字列を使用せずにパスを直接構築して実行する方法の例です。ソースコード内のパスを表すには、lit-pathを使用します。データ・タイプ。

例:

>> p: 'fs/usr/local
== fs/usr/local
>> do p
== [
    bin []
]

パスに追加して操作することもできます。

>> append p 'bin
== fs/usr/local/bin
>> do p
== []

ブロック内に保存されている場合は、パスを使用します。直接入力します(点灯パスではありません!):

>> p: [fs/usr/local/bin]
== [fs/usr/local]
>> do first p
== [
    bin []
]

また、パスは一連の単語で構成されているため、パスを直接使用する方が文字列を使用するよりも利点があります。これは、文字列の例よりも簡単に操作できます。

>> head change next p 'bin
== fs/bin/local

>> p: 'fs/path/issue/is
== fs/path/issue/is
>> head replace p 'is  'was
== fs/path/issue/w

文字列を使用するのとは対照的に:

>> p: "fs/path/issue/is"
== "fs/path/issue/is"
>> head replace p "is"  "was"
== "fs/path/wassue/is"

Rebolデータセットの代わりにディスクを参照する場合は、単に'FSにファイルの値を指定する必要があります。そこから参照するパスの残りの部分(これは、パスがファイルでどのように機能するかです!タイプ):

fs: %/c/ 
read dirize fs/windows
于 2013-02-27T21:09:25.693 に答える