ページ「Vi」と「エントリポイント」の間の差分
(ページ間の差分)
ナビゲーションに移動
検索に移動
(→PHP) |
|||
1行目: | 1行目: | ||
− | + | '''エントリーポイント'''(entry point)とは、[[プログラム]]を実行する際の開始地点のことである。[[サブルーチン]]という用語を用いる[[プログラミング言語では]]'''メインルーチン'''と呼ぶこともある。 | |
− | ''' | ||
− | + | [[スクリプト言語]]などでは[[ソースコード]]の先頭をエントリーポイントとするものが多い。 | |
− | + | また、[[Python]]や[[Ruby]]、[[Perl]]などのように同一[[ソースコード]]でも呼ばれ方の違いにより、メインルーチンとして動いたり、ライブラリとして動いたりということを容易に切り替えれる[[プログラミング言語]]もある。 | |
− | + | == 記述例 == | |
− | + | === [[C Sharp|C#]] === | |
+ | <source lang="csharp"> | ||
+ | namespace HelloWorld | ||
+ | { | ||
+ | class Hello | ||
+ | { | ||
+ | public static void Main(string[] args) | ||
+ | { | ||
+ | // something in my house | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
− | [[ | + | === [[Java]] === |
− | + | <source lang="java"> | |
+ | public class HelloWorld { | ||
+ | public static void main (String[] args) { | ||
+ | // something in my house | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
− | == | + | === [[Python]] === |
+ | <source lang="python"> | ||
+ | if __name__ == "__main__": | ||
+ | # something in my house | ||
+ | </source> | ||
− | === | + | === [[Ruby]] === |
− | [[ | + | <source lang="ruby"> |
− | + | if $0 == __FILE__ | |
− | + | # something in my house | |
− | + | end | |
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | === [[Perl]] === |
− | + | <source lang="perl"> | |
− | + | if ($0 eq __FILE__) { | |
+ | # something in my house | ||
+ | } | ||
+ | 1; #←は「return 1;」の省略表記。 | ||
+ | </source> | ||
− | ==== | + | === [[PHP]] === |
− | + | ==== 現状わかっている最強の方法 ==== | |
− | + | <source lang="php"> | |
− | ! | + | if (!debug_backtrace()) { |
− | + | // これ最強 | |
− | + | } | |
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==== | + | ==== コマンドラインの場合 ==== |
− | + | <source lang="php"> | |
− | { | + | <?php |
− | + | if (isset($argv[0]) && __FILE__ === realpath($argv[0])) { | |
− | + | // something in my house | |
− | + | } | |
− | + | </source> | |
− | + | ==== Apacheモジュールの場合 ==== | |
− | + | <source lang="php"> | |
+ | <?php | ||
+ | if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) { | ||
+ | // something in my house | ||
+ | } | ||
+ | </source> | ||
− | === | + | === [[F Sharp|F#]] === |
− | + | <source lang="fsharp"> | |
− | + | [<EntryPoint>] | |
− | + | let main args = | |
− | + | // something in my house | |
− | + | // 0を返して正常終了 | |
− | + | 0 | |
− | + | </source> | |
− | + | ||
− | + | === [[Haskell]] === | |
− | + | <source lang="haskell"> | |
− | + | {- Haskell "hello, world" -} | |
− | + | main = putStrLn "hello, world" -- putStrLn は文字列を出力する | |
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 関連項目 == | == 関連項目 == | ||
− | * [[ | + | * [[プログラミング言語]] |
− | |||
− | |||
== 参考文献 == | == 参考文献 == | ||
− | + | <references/> | |
+ | == 外部リンク == | ||
{{stub}} | {{stub}} |
2012年5月2日 (水) 09:17時点における版
エントリーポイント(entry point)とは、プログラムを実行する際の開始地点のことである。サブルーチンという用語を用いるプログラミング言語ではメインルーチンと呼ぶこともある。
スクリプト言語などではソースコードの先頭をエントリーポイントとするものが多い。 また、PythonやRuby、Perlなどのように同一ソースコードでも呼ばれ方の違いにより、メインルーチンとして動いたり、ライブラリとして動いたりということを容易に切り替えれるプログラミング言語もある。
目次
記述例
C#
namespace HelloWorld
{
class Hello
{
public static void Main(string[] args)
{
// something in my house
}
}
}
Java
public class HelloWorld {
public static void main (String[] args) {
// something in my house
}
}
Python
if __name__ == "__main__":
# something in my house
Ruby
if $0 == __FILE__
# something in my house
end
Perl
if ($0 eq __FILE__) {
# something in my house
}
1; #←は「return 1;」の省略表記。
PHP
現状わかっている最強の方法
if (!debug_backtrace()) {
// これ最強
}
コマンドラインの場合
<?php
if (isset($argv[0]) && __FILE__ === realpath($argv[0])) {
// something in my house
}
Apacheモジュールの場合
<?php
if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
// something in my house
}
F#
[<EntryPoint>]
let main args =
// something in my house
// 0を返して正常終了
0
Haskell
{- Haskell "hello, world" -}
main = putStrLn "hello, world" -- putStrLn は文字列を出力する