天疱疮是什么病| 痔疮吃什么消炎药| 血糖高吃什么中药| 血压低是什么原因| 什么体质容易高原反应| 悦是什么意思| 巧克力囊肿有什么症状表现| bruce是什么意思| 复方丹参片治什么病| 尿多什么原因| 糖尿病人能吃什么水果| 甲状腺分泌什么激素| 什么的火车| 溢于言表是什么意思| 红颜知己是什么| 牙齿为什么会变黑| 南宁有什么特产| 男士脸黑穿什么颜色好| 阿玛尼属于什么档次| 耳朵真菌感染用什么药| 汴去掉三点水念什么| 消渴症是什么病| 口咸是什么原因引起的| ptsd是什么病| 大庭广众什么意思| 吃什么水果对皮肤好| 浮沉是什么意思| 金针菇不能和什么一起吃| 大红袍适合什么季节喝| cpc什么意思| 人间蒸发是什么意思| 金鱼藻属于什么植物| 貘是什么| 康复治疗学是做什么的| 冷艳是什么意思| dsa什么意思| 涉嫌是什么意思| 低血压吃什么药效果好| 减肥能吃什么| 心脏属于什么组织| 六月六吃什么| 女人性冷淡用什么药| 鼻子老是出血是什么原因| 肝脂肪沉积是什么意思| 戏谑什么意思| 小龙虾什么季节吃最好| 7月5号什么星座| 牛肉用什么调料| 风评是什么意思| 引产和流产有什么区别| 朔望月是什么意思| 仔细的什么| 汛期什么意思| 爱慕内衣什么档次| 骨密度挂什么科| 伤官见官什么意思| 天天喝啤酒对身体有什么危害| 杨颖原名叫什么| 博士的学位是什么| 箜篌是什么乐器| 肺结节有什么症状| 什么叫打气 是吸毒吗| 什么血型是万能血型| 肝囊肿吃什么药| 来加贝念什么| 鲁迅原名是什么| 我们为什么会笑| 梦见吵架是什么预兆| 玻璃五行属什么| gu是什么品牌| 家政公司是做什么的| 神采奕奕是什么意思| 上火是什么意思| 1126是什么星座| 岁月的痕迹是什么意思| 怀孕应该注意什么| 急忙的反义词是什么| 黄眉大王是什么妖怪| 肝s4钙化灶是什么意思| 吹空调感冒吃什么药| 此什么非彼什么的意思| 玄胡又叫什么| 精血亏虚吃什么中成药| 盆腔积液吃什么药效果好| 玉米淀粉是什么| 100001是什么电话| 头皮屑多的原因是什么| 支那人什么意思| 副脾对身体有什么影响| 夕阳无限好只是近黄昏是什么意思| 36计的第一计是什么| 血热吃什么药可以凉血| 朱祁镇为什么杀于谦| 未央什么意思| 一生无虞是什么意思| 靓是什么意思| 梦见狗咬人是什么预兆| 眼睛痒是怎么回事用什么药| 看见黑猫代表什么预兆| 霍金什么时候去世| 危日是什么意思| 尿频尿多吃什么药好| 舌头肥厚是什么原因| nsaids是什么药| 右乳钙化灶是什么意思| 精神分裂症吃什么药| 左腿酸痛是什么原因| 吃什么头发长的快| 吃李子有什么好处和坏处| 小清新是什么意思啊| hvr是什么意思| 快闪是什么意思| 肺部结节是什么原因引起的| 姑息性化疗什么意思| 耸肩是什么意思| 咽炎吃什么药最好效果| 红肉指的是什么肉| 保险子是什么| 火丹是什么原因造成的| 桃子是什么颜色| 性取向是什么意思| 凝固是什么意思| 车厘子是什么季节的| 枸杞搭配什么喝最好| 质子是什么意思| 眼白出血是什么原因| 心口下面疼是什么原因| 圈癣是什么引起的| as是什么元素| 口粮是什么意思| 习惯是什么意思| 英语什么时候学最好| 上吐下泻吃什么药| beam什么意思| 穿刺是检查什么的| 膝盖小腿酸软无力是什么原因| 血脂稠吃什么| 曹洪是曹操的什么人| 王菲什么星座| 熬夜伤什么| 肋下未及是什么意思| 什么是命运| 处女男喜欢什么样的女生| 为什么经常放屁| 为什么叫智齿| adhd是什么病| 血肌酐高是什么原因| 四个月是什么字| 枕大神经痛吃什么药| 女人长期喝西洋参有什么好处| snp是什么意思| 盍是什么意思| 什么情况下做试管婴儿| 胃火喝什么茶降火| 什么是亚健康| 单脐动脉对胎儿有什么影响| 刺梨是什么水果| 手指关节疼痛用什么药| 下面痛是什么原因| prada是什么品牌| 麝香是什么味道| 野是什么意思| 梦见狗打架是什么意思| 法令纹是什么| 吃什么助勃药能硬| 电饭煲什么内胆最好| 忽然流鼻血是什么原因引起的| 纱布是什么材质| 唇周围长痘痘是什么原因| 容易流鼻血是什么原因| 鱿鱼是什么动物| 梦见大狼狗是什么意思| 佝偻病是什么病| 滑膜炎挂什么科| 脑白质变性是什么意思| 糖稀是什么| 无创是什么意思| 7.1是什么星座| 经期吃什么好排除瘀血| 隔桌不买单是什么意思| 凉面是用什么面做的| 什么是伪娘| 房颤是什么病| 做美甲师容易得什么病| 小腿肚子抽筋是什么原因| 血压偏高喝什么茶| 什么的假山| tspot检查阳性能说明什么| 肚子胀气放屁吃什么药| 沙门氏菌用什么药| 行政工作主要负责什么| 高抬腿运动有什么好处| 查肝挂什么科| 64属什么| 怀孕3天有什么症状| 星字五行属什么| 眼皮突然肿了是什么原因| 铁剂是什么| 长生不老是什么意思| 油性皮肤适合用什么牌子的护肤品| 皮疹是什么原因引起的| 五官是什么| 为什么吃火龙果会拉肚子| 实拍是什么意思| 叔叔老婆叫什么| 鼠和什么属相相冲| 呦呦鹿鸣什么意思| blingbling什么意思| 什么叫粳米| 热伤风吃什么药| 肩周炎吃什么药效果最好| 十一月二十是什么星座| 佛是什么| 白是什么结构的字| 呼吸道感染吃什么药| 高钙血症是什么意思| 月相是什么意思| 小便无力吃什么药| 印度属于什么亚| 支付宝提现是什么意思| 爱字五行属什么| 区教育局局长是什么级别| 藩台是什么官| 胃癌手术后吃什么补品| 糖尿病人吃什么水果好| 胃不好吃什么好消化又有营养| 智商高是什么意思| 梦见狼是什么意思周公解梦| 什么是裸分| 皮肤过敏不能吃什么| 男外科都检查什么| 对什么有好处的英文| 男人性功能太强是什么原因| 血管病变是什么意思| 什么是虫草| 地球为什么自转| 吃山药有什么好处和坏处| 甲状腺欠均匀什么意思| 婴儿眉毛上黄痂是什么| 8月2日是什么星座| 咂是什么意思| 金色和什么颜色搭配好看| 生孩子大出血是什么原因造成的| 杂合突变型是什么意思| 弥月之喜是什么意思| pcl是什么材料| 下午16点是什么时辰| 忖量是什么意思| 什么叫道德绑架| 复方氯化钠注射作用是什么| 往届毕业生是什么意思| 康波是什么意思| 山茱萸的功效与作用是什么| 一人吃饱全家不饿是什么生肖| 郑中基为什么叫太子基| 泡沫尿吃什么药| 食指戴戒指代表什么| 晕3d什么症状| 吸血鬼初拥是什么意思| 什么牌子的空调最好| 臃肿是什么意思| pck是什么意思| 手蜕皮什么原因| 腰胀是什么原因引起的| 百度Jump to content

河北唐山:无人机进入学校第二课堂

From Wikipedia, the free encyclopedia
(Redirected from Main function)
Example of the main function, in C#.
How the Main() might look in C# source code. Different parts are labeled for reference.
百度 目前,交子金融科技中心、金融梦工场·金融麦田、交子金融博物馆3大项目都已有了实质性进展。

In computer programming, an entry point is the place in a program where the execution of a program begins, and where the program has access to command line arguments.[failed verification][1]

To start a program's execution, the loader or operating system passes control to its entry point. (During booting, the operating system itself is the program). This marks the transition from load time (and dynamic link time, if present) to run time.

For some operating systems and programming languages, the entry point is in a runtime library, a set of support functions for the language. The library code initializes the program and then passes control to the program proper. In other cases, the program may initialize the runtime library itself.[2]

In simple systems, execution begins at the first statement, which is common in interpreted languages, simple executable formats, and boot loaders. In other cases, the entry point is at some other known memory address which can be an absolute address or relative address (offset).

Alternatively, execution of a program can begin at a named point, either with a conventional name defined by the programming language or operating system or at a caller-specified name. In many C-family languages, this is a function called main; as a result, the entry point is often known as the main function.[3]

In JVM languages, such as Java, the entry point is a static method called main; in CLI languages such as C# the entry point is a static method named Main.[4]

Usage

[edit]

Entry points apply both to source code and to executable files. However, in day-to-day software development, programmers specify the entry points only in source code, which makes them much better known. Entry points in executable files depend on the application binary interface (ABI) of the actual operating system, and are generated by the compiler or linker (if not fixed by the ABI). Other linked object files may also have entry points, which are used later by the linker when generating entry points of an executable file.

Entry points are capable of passing on command arguments, variables, or other information as a local variable used by the Main() method. This way, specific options may be set upon execution of the program, and then interpreted by the program. Many programs use this as an alternative way to configure different settings, or perform a set variety of actions using a single program.

Contemporary

[edit]

In most of today's popular programming languages and operating systems, a computer program usually only has a single entry point.

In C, C++, D, Zig, Rust and Kotlin programs this is a function named main; in Java it is a static method named main (although the class must be specified at the invocation time), and in C# it is a static method named Main.[5][6]

In many major operating systems, the standard executable format has a single entry point. In the Executable and Linkable Format (ELF), used in Unix and Unix-like systems such as Linux, the entry point is specified in the e_entry field of the ELF header. In the GNU Compiler Collection (gcc), the entry point used by the linker is the _start symbol. Similarly, in the Portable Executable format, used in Microsoft Windows, the entry point is specified by the AddressOfEntryPoint field, which is inherited from COFF. In COM files, the entry point is at the fixed offset of 0100h.

One exception to the single-entry-point paradigm is Android. Android applications do not have a single entry point – there is no special main function. Instead, they have essential components (activities and services) which the system can load and run as needed.[7]

An occasionally used technique is the fat binary, which consists of several executables for different targets packaged in a single file. Most commonly, this is implemented by a single overall entry point, which is compatible with all targets and branches to the target-specific entry point. Alternative techniques include storing separate executables in separate forks, each with its own entry point, which is then selected by the operating system.

Historical

[edit]

Historically, and in some contemporary legacy systems, such as VMS and OS/400, computer programs have a multitude of entry points, each corresponding to the different functionalities of the program. The usual way to denote entry points, as used system-wide in VMS and in PL/I and MACRO programs, is to append them at the end of the name of the executable image, delimited by a dollar sign ($), e.g. directory.exe$make.

The Apple I computer also used this to some degree. For example, an alternative entry point in Apple I's BASIC would keep the BASIC program useful when the reset button was accidentally pushed.[clarification needed]

Exit point

[edit]

In general, programs can exit at any time by returning to the operating system or crashing. Programs in interpreted languages return control to the interpreter, but programs in compiled languages must return to the operating system, otherwise the processor will simply continue executing beyond the end of the program, resulting in undefined behavior.

Usually, there is not a single exit point specified in a program. However, in other cases runtimes ensure that programs always terminate in a structured way via a single exit point, which is guaranteed unless the runtime itself crashes; this allows cleanup code to be run, such as atexit handlers. This can be done by either requiring that programs terminate by returning from the main function, by calling a specific exit function, or by the runtime catching exceptions or operating system signals.

Programming languages

[edit]

In many programming languages, the main function is where a program starts its execution. It enables high-level organization of the program's functionality, and typically has access to the command arguments given to the program when it was executed.

The main function is generally the first programmer-written function that runs when a program starts, and is invoked directly from the system-specific initialization contained in the runtime environment (crt0 or equivalent). However, some languages can execute user-written functions before main runs, such as the constructors of C++ global objects.

In other languages, notably many interpreted languages, execution begins at the first statement in the program.

A non-exhaustive list of programming languages follows, describing their way of defining the main entry point:

APL

[edit]

In APL, when a workspace is loaded, the contents of "quad LX" (latent expression) variable is interpreted as an APL expression and executed.

C and C++

[edit]

In C and C++, the function prototype of the main function must be equivalent to one of the following:

int main();
int main(void);
int main(int argc, char **argv);

The main function is the entry point for application programs written in ISO-standard C or C++. Low-level system programming (such as for a bare-metal embedded system) might specify a different entry point (for example via a reset interrupt vector) using functionality not defined by the language standard.

The parameters argc, argument count, and argv, argument vector,[citation needed] respectively give the number and values of the program's command-line arguments. The names of argc and argv may be any valid identifier, but it is common convention to use these names. Other platform-dependent formats are also allowed by the C and C++ standards, except that in C++ the return type must always be int;[8] for example, Unix (though not POSIX.1) and Windows have a third argument giving the program's environment, otherwise accessible through getenv in stdlib.h:

int main(int argc, char **argv, char **envp);

Darwin-based operating systems, such as macOS, have a fourth parameter containing arbitrary OS-supplied information, such as the path to the executing binary:[9]

int main(int argc, char **argv, char **envp, char **apple);

The value returned from the main function becomes the exit status of the process, though the C standard only ascribes specific meaning to two values: EXIT_SUCCESS (traditionally 0) and EXIT_FAILURE. The meaning of other possible return values is implementation-defined. In case a return value is not defined by the programmer, an implicit return 0; at the end of the main() function is inserted by the compiler; this behavior is required by the C++ standard.

It is guaranteed that argc is non-negative and that argv[argc] is a null pointer. By convention, the command-line arguments specified by argc and argv include the name of the program as the first element if argc is greater than 0; if a user types a command of "rm file", the shell will initialise the rm process with argc = 2 and argv = {"rm", "file", NULL}. As argv[0] is the name that processes appear under in ps, top etc., some programs, such as daemons or those running within an interpreter or virtual machine (where argv[0] would be the name of the host executable), may choose to alter their argv to give a more descriptive argv[0], usually by means of the exec system call.

The main() function is special; normally every C and C++ program must define it exactly once.

If declared, main() must be declared as if it has external linkage; it cannot be declared static or inline.

In C++, main() must be in the global namespace (i.e. ::main), cannot be overloaded, and cannot be a member function, although the name is not otherwise reserved, and may be used for member functions, classes, enumerations, or non-member functions in other namespaces. In C++ (unlike C) main() cannot be called recursively and cannot have its address taken.

C#

[edit]

When executing a program written in C#, the CLR searches for a static method marked with the .entrypoint IL directive, which takes either no arguments, or a single argument of type string[], and has a return type of void or int, and executes it.[10]

static void Main();
static void Main(string[] args);
static int Main();
static int Main(string[] args);

Command-line arguments are passed in args, similar to how it is done in Java. For versions of Main() returning an integer, similar to both C and C++, it is passed back to the environment as the exit status of the process.

Since C#7.1 there are four more possible signatures of the entry point, which allow asynchronous execution in the Main() Method.[11]

static async Task Main()
static async Task<int> Main()
static async Task Main(string[])
static async Task<int> Main(string[])

The Task and Task<int> types are the asynchronous equivalents of void and int. async is required to allow the use of asynchrony (the await keyword) inside the method.

Clean

[edit]

Clean is a functional programming language based on graph rewriting. The initial node is named Start and is of type *World -> *World if it changes the world or some fixed type if the program only prints the result after reducing Start.

Start :: *World -> *World
Start world = startIO ...

Or even simpler

Start :: String
Start = "Hello, world!"

One tells the compiler which option to use to generate the executable file.

Common Lisp

[edit]

ANSI Common Lisp does not define a main function; instead, the code is read and evaluated from top to bottom in a source file. However, the following code will emulate a main function.

(defun hello-main ()
  (format t "Hello World!~%"))

(hello-main)

D

[edit]

In D, the function prototype of the main function looks like one of the following:

void main();
void main(string[] args);
int main();
int main(string[] args);

Command-line arguments are passed in args, similar to how it is done in C# or Java. For versions of main() returning an integer, similar to both C and C++, it is passed back to the environment as the exit status of the process.

Dart

[edit]

Dart is a general-purpose programming language that is often used for building web and mobile applications. Like many other programming languages, Dart has an entry point that serves as the starting point for a Dart program. The entry point is the first function that is executed when a program runs. In Dart, the entry point is typically a function named main . When a Dart program is run, the Dart runtime looks for a function named main and executes it. Any Dart code that is intended to be executed when the program starts should be included in the main function. Here is an example of a simple main function in Dart:

void main() {
  print("Hello, world!");
}

In this example, the main function simply prints the text Hello, world! to the console when the program is run. This code will be executed automatically when the Dart program is run.

It is important to note that while the main function is the default entry point for a Dart program, it is possible to specify a different entry point if needed. This can be done using the @pragma("vm:entry-point") annotation in Dart. However, in most cases, the main function is the entry point that should be used for Dart programs.

FORTRAN

[edit]

FORTRAN does not have a main subroutine or function. Instead a PROGRAM statement as the first line can be used to specify that a program unit is a main program, as shown below. The PROGRAM statement cannot be used for recursive calls.[12]

      PROGRAM HELLO
      PRINT *, "Cint!"
      END PROGRAM HELLO

Some versions of Fortran, such as those on the IBM System/360 and successor mainframes, do not support the PROGRAM statement. Many compilers from other software manufacturers will allow a fortran program to be compiled without a PROGRAM statement. In these cases, whatever module that has any non-comment statement where no SUBROUTINE, FUNCTION or BLOCK DATA statement occurs, is considered to be the Main program.

GNAT

[edit]

Using GNAT, the programmer is not required to write a function named main; a source file containing a single subprogram can be compiled to an executable. The binder will however create a package ada_main, which will contain and export a C-style main function.

Go

[edit]

In Go programming language, program execution starts with the main function of the package main

package main

import "fmt"

func main() {
 fmt.Println("Hello, World!")
}

There is no way to access arguments or a return code outside of the standard library in Go. These can be accessed via os.Args and os.Exit respectively, both of which are included in the "os" package.

Haskell

[edit]

A Haskell program must contain a name main bound to a value of type IO t, for some type t;[13] which is usually IO (). IO is a monad, which organizes side-effects in terms of purely functional code.[14] The main value represents the side-effects-ful computation done by the program. The result of the computation represented by main is discarded; that is why main usually has type IO (), which indicates that the type of the result of the computation is (), the unit type, which contains no information.

main :: IO ()
main = putStrLn "Hello, World!"

Command line arguments are not given to main; they must be fetched using another IO action, such as System.Environment.getArgs.

Java

[edit]

Java programs start executing at the main method of a class,[15][16][17][18] which has one of the following method headings:

public static void main(String[] args)
public static void main(String... args)
public static void main(String args[])
void main()

Command-line arguments are passed in args. As in C and C++, the name "main()" is special. Java's main methods do not return a value directly, but one can be passed by using the System.exit() method.

Unlike C, the name of the program is not included in args, because it is the name of the class that contains the main method, so it is already known. Also unlike C, the number of arguments need not be included, since arrays in Java have a field that keeps track of how many elements there are.

The main function must be included within a class. This is because in Java everything has to be contained within a class. For instance, a hello world program in Java may look like:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}

To run this program, one must call java HelloWorld in the directory where the compiled class file HelloWorld.class) exists. Alternatively, executable JAR files use a manifest file to specify the entry point in a manner that is filesystem-independent from the user's perspective.

[edit]

In FMSLogo, the procedures when loaded do not execute. To make them execute, it is necessary to use this code:

to procname
 ...                 ; Startup commands (such as print [Welcome])
end
make "startup [procname]

The variable startup is used for the startup list of actions, but the convention is that this calls a procedure that runs the actions. That procedure may be of any name.

OCaml

[edit]

OCaml has no main function. Programs are evaluated from top to bottom.

Command-line arguments are available in an array named Sys.argv and the exit status is 0 by default.

Example:

print_endline "Hello World"

Pascal

[edit]

In Pascal, the main procedure is the only unnamed block in the program. Because Pascal programs define procedures and functions in a more rigorous bottom-up order than C, C++ or Java programs, the main procedure is usually the last block in the program. Pascal does not have a special meaning for the name "main" or any similar name.

program Hello(Output);
begin
  writeln('Hello, world!');
end.

Command-line arguments are counted in ParamCount and accessible as strings by ParamStr(n), with n between 0 and ParamCount.

Versions of Pascal that support units or modules may also contain an unnamed block in each, which is used to initialize the module. These blocks are executed before the main program entry point is called.

Perl

[edit]

In Perl, there is no main function. Statements are executed from top to bottom, although statements in a BEGIN block are executed before normal statements.

Command-line arguments are available in the special array @ARGV. Unlike C, @ARGV does not contain the name of the program, which is $0.

PHP

[edit]

PHP does not have a "main" function. Starting from the first line of a PHP script, any code not encapsulated by a function header is executed as soon as it is seen.

Pike

[edit]

In Pike syntax is similar to that of C and C++. The execution begins at main. The "argc" variable keeps the number of arguments passed to the program. The "argv" variable holds the value associated with the arguments passed to the program.

Example:

 int main(int argc, array(string) argv)

Python

[edit]

Python programs are evaluated top-to-bottom, as is usual in scripting languages: the entry point is the start of the source code. Since definitions must precede use, programs are typically structured with definitions at the top and the code to execute at the bottom (unindented), similar to code for a one-pass compiler, such as in Pascal.

Alternatively, a program can be structured with an explicit main function containing the code to be executed when a program is executed directly, but which can also be invoked by importing the program as a module and calling the function. This can be done by the following idiom, which relies on the internal variable __name__ being set to __main__ when a program is executed, but not when it is imported as a module (in which case it is instead set to the module name); there are many variants of this structure:[19][20][21]

import sys

def main(argv):
    n = int(argv[1])
    print(n + 1)

if __name__ == "__main__":
    sys.exit(main(sys.argv))

In this idiom, the call to the named entry point main is explicit, and the interaction with the operating system (receiving the arguments, calling system exit) are done explicitly by library calls, which are ultimately handled by the Python runtime. This contrasts with C, where these are done implicitly by the runtime, based on convention.

QB64

[edit]

The QB64 language has no main function, the code that is not within a function, or subroutine is executed first, from top to bottom:

print "Hello World! a =";
a = getInteger(1.8d): print a
function getInteger(n as double)
    getInteger = int(n)
end function

Command line arguments (if any) can be read using the COMMAND$ function:

dim shared commandline as string
commandline = COMMAND$
'Several space-separated command line arguments can be read using COMMAND$(n)
commandline1 = COMMAND$(2)

Ruby

[edit]

In Ruby, there is no distinct main function. Instead, code written outside of any class .. end or module .. end scope is executed in the context of a special "main" object. This object can be accessed using self:

irb(main):001:0> self
=> main

It has the following properties:

irb(main):002:0> self.class
=> Object
irb(main):003:0> self.class.ancestors
=> [Object, Kernel, BasicObject]

Methods defined outside of a class or module scope are defined as private methods of the "main" object. Since the class of "main" is Object, such methods become private methods of almost every object:

irb(main):004:0> def foo
irb(main):005:1>   42
irb(main):006:1> end
=> nil
irb(main):007:0> foo
=> 42
irb(main):008:0> [].foo
NoMethodError: private method `foo' called for []:Array
	from (irb):8
	from /usr/bin/irb:12:in `<main>'
irb(main):009:0> false.foo
NoMethodError: private method `foo' called for false:FalseClass
	from (irb):9
	from /usr/bin/irb:12:in `<main>'

The number and values of command-line arguments can be determined using the ARGV constant array:

$ irb /dev/tty foo bar

tty(main):001:0> ARGV
ARGV
=> ["foo", "bar"]
tty(main):002:0> ARGV.size
ARGV.size
=> 2

The first element of ARGV, ARGV[0], contains the first command-line argument, not the name of program executed, as in C. The name of program is available using $0 or $PROGRAM_NAME.[22]

Similar to Python, one could use:

if __FILE__ == $PROGRAM_NAME
  # Put "main" code here
end

to execute some code only if its file was specified in the ruby invocation.

Rust

[edit]

In Rust, the entry point of a program is a function named main. By convention, this function is situated in a file called main.rs.

// In `main.rs`
fn main() {
    println!("Hello, World!");
}

Additionally, as of Rust 1.26.0, the main function may return a Result:[23]

fn main() -> Result<(), std::io::Error> {
    println!("Hello, World!");

    Ok(())  // Return a type `Result` of value `Ok` with the content `()`, i.e. an empty tuple.
}

Swift

[edit]

When run in an Xcode Playground,[24] Swift behaves like a scripting language, executing statements from top to bottom; top-level code is allowed.

// HelloWorld.playground

let hello = "hello"
let world = "world"

let helloWorld = hello + " " + world

print(helloWorld) // hello world

Cocoa- and Cocoa Touch-based applications written in Swift are usually initialized with the @NSApplicationMain and @UIApplicationMain attributes, respectively. Those attributes are equivalent in their purpose to the main.m file in Objective-C projects: they implicitly declare the main function that calls UIApplicationMain(_:_:_:_:)[25] which creates an instance of UIApplication.[26]

The following code is the default way to initialize a Cocoa Touch-based iOS app and declare its application delegate.

// AppDelegate.swift

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    
    var window: UIWindow?
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        return true
    }
    
}

Visual Basic

[edit]

In Visual Basic, when a project contains no forms, the startup object may be the Main() procedure. The Command$ function can be optionally used to access the argument portion of the command line used to launch the program:

Sub Main()
    Debug.Print "Hello World!"
    MsgBox "Arguments if any are: " & Command$
End Sub

Xojo

[edit]

In Xojo, there are two different project types, each with a different main entry point. Desktop (GUI) applications start with the App.Open event of the project's Application object. Console applications start with the App.Run event of the project's ConsoleApplication object. In both instances, the main function is automatically generated, and cannot be removed from the project.

See also

[edit]

References

[edit]
  1. ^ "In Computing, what is an Entry Point? (with picture)". wiseGEEK. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  2. ^ Decker, Karsten M.; Rehmann, René M. (1994). Programming Environments for Massively Parallel Distributed Systems: Working Conference of the Ifip Wg 10.3, April 25-29, 1994. Springer Science & Business Media. ISBN 978-3-7643-5090-1.
  3. ^ "Main Method in C#". GeeksforGeeks. 2025-08-06. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  4. ^ Wagner, Bill (2025-08-06). "Main() / Entry Points (C# Programming Guide) - Microsoft Developer Network". docs.microsoft.com. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  5. ^ "The main() function". ibm.com. IBM. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  6. ^ "Main() and Command-Line Arguments (C# Programming Guide)". Msdn.microsoft.com. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  7. ^ "Application Fundamentals". Android Development. linuxtopia.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  8. ^ Section 3.6.1.2, Standard C++ 2011 edition.
  9. ^ "The char *apple Argument Vector". Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  10. ^ "Console Applications in .NET, or Teaching a New Dog Old Tricks". Msdn.microsoft.com. 2025-08-06. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  11. ^ "The official repo for the design of the C# programming language: Dotnet/Csharplang". GitHub. 2025-08-06.
  12. ^ XL FORTRAN for AIX. Language Reference. Third Edition, 1994. IBM
  13. ^ "The Haskell 98 Report: Modules". Haskell.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  14. ^ Some Haskell Misconceptions: Idiomatic Code, Purity, Laziness, and IO Archived 2025-08-06 at the Wayback Machine — on Haskell's monadic IO>
  15. ^ "The Java Language Environment". Oracle. Archived from the original on 2025-08-06. Retrieved 2025-08-06. Within the HelloWorld class, we declare a single method called main() which in turn contains a single method invocation to display the string "Hello world!" on the standard output. The statement that prints "Hello world!" does so by invoking the println method of the out object. The out object is a class variable in the System class that performs output operations on files.
  16. ^ Schildt, Herbert (2019). Java : a beginner's guide. New York: McGraw-Hill Education. p. 46. ISBN 978-1-260-44022-5. OCLC 1061561931. A JAVA program begins with a call to main ().
  17. ^ "Hello, World! - Free Interactive Java Tutorial". Learn Java. Retrieved 2025-08-06. In Java, every line of code that can actually run needs to be inside a class. "public class Main {}" declares a class named Main, which is public, that means that any other class can access it.
  18. ^ "Hello, World! - Free Interactive Java Tutorial". Learn Java. Retrieved 2025-08-06. "public static void main(String[] args) {} " is the entry point of our Java program. the main method has to have this exact signature in order to be able to run our program.
  19. ^ Guido van Rossum (May 15, 2003). "Python main() functions". Archived from the original on July 11, 2015. Retrieved June 29, 2015,comments
  20. ^ Code Like a Pythonista: Idiomatic Python Archived 2025-08-06 at the Wayback Machine—on Python scripts used as modules
  21. ^ Ned Batchelder (6 June 2003). "Python main() functions". Archived from the original on 20 September 2015. Retrieved 29 June 2015.
  22. ^ class ARGF — on Ruby ARGV
  23. ^ "Releases.md". GitHub Rust. Archived from the original on 2025-08-06. Retrieved 15 February 2019.
  24. ^ Not to be confused with Swift Playgrounds Archived 2025-08-06 at the Wayback Machine, an Apple-developed iPad app for learning the Swift programming language.
  25. ^ "UIApplicationMain(_:_:_:_:) — UIKit". Apple Developer Documentation. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  26. ^ "UIApplication — UIKit". Apple Developer Documentation. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
[edit]
平安扣适合什么人戴 戏耍的近义词是什么 三焦指的是什么器官 什么是优质碳水 县委副书记是什么级别
足癣用什么药 肾功能三项检查什么 低血压是什么症状 男性裆部瘙痒用什么药好 乳腺囊实性结节是什么意思
7月25日什么星座 裂帛是什么意思 夏天脚底出汗是什么原因 门字五行属什么 什么是房颤
今年农历什么年 单亲家庭什么意思 每天起床口苦口臭是什么原因 子时是什么时间 舌苔发白是什么情况
皮赘用什么药膏去除hcv9jop8ns2r.cn 脑梗阻有什么症状hcv9jop2ns0r.cn 有是什么意思hcv9jop1ns1r.cn 水痘长什么样子hcv9jop7ns1r.cn 带沉香手串有什么好处hcv8jop8ns4r.cn
戾是什么意思hcv8jop1ns1r.cn 做梦捡到钱是什么预兆hcv8jop5ns5r.cn 血热吃什么药效果好xinjiangjialails.com 维生素c弱阳性是什么意思huizhijixie.com 阳气不足是什么意思hcv9jop5ns4r.cn
和硕是什么意思hcv8jop7ns6r.cn 女性漏尿吃什么药最好520myf.com 1909年属什么生肖hcv9jop1ns5r.cn 六月初一什么日子hcv9jop7ns3r.cn 乔顿男装属于什么档次gangsutong.com
潘多拉属于什么档次hcv9jop2ns4r.cn 未时右眼跳是什么预兆hcv7jop6ns5r.cn 肛裂涂什么药膏能愈合hcv9jop4ns6r.cn 嗓子疼发烧吃什么药hcv8jop6ns9r.cn 长期喝咖啡有什么好处和坏处hcv8jop5ns9r.cn
百度