3
codewars(以及其他類似網站)如何在瀏覽器中運行代碼?我確定他們只是在自己的服務器上運行它並返回值。但它是如何工作的?就像他們將代碼寫入臨時文件或其他東西一樣,在服務器上運行它...然後返回值?如何?比我做得更簡單嗎?在瀏覽器中運行代碼
,解決安全件,但我還是覺得不過癮。我希望有人可以有更好的東西來補充它的實際工作方式。
codewars(以及其他類似網站)如何在瀏覽器中運行代碼?我確定他們只是在自己的服務器上運行它並返回值。但它是如何工作的?就像他們將代碼寫入臨時文件或其他東西一樣,在服務器上運行它...然後返回值?如何?比我做得更簡單嗎?在瀏覽器中運行代碼
,解決安全件,但我還是覺得不過癮。我希望有人可以有更好的東西來補充它的實際工作方式。
這是總推測,我真的不知道他們做了什麼,但你可以使用Kernel#eval
以紅寶石[以不是很安全的方式]執行字符串。以此爲例子:
eval "class MyClass; def run; puts 'I ran it!'; end; end; MyClass.new.run;"
=> I ran it!
所以在理論上,你可以對字符串進行置換(即\n
變得;
),並通過eval
運行它。