所以,如果你了解 Python,你应该熟悉以下内容:
def main():
<your code>
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
这将创建一个主函数并检查当前文件是否正在运行或导入。我想知道在尼姆是否有办法做到这一点。
编辑:另外,是否建议这样做。
我在一个应用程序运行测试,有人为我提供的代码,我得到了一切,除了我activity.java去,它说R.layout.main,它说,主要解决不了.它宣称,为什么不检测它呢?它在下面
Activity.java
package magic.test.namespace;
import android.R;
import android.app.Activity;
import android.os.Bundle;
public class SaytheMagicWordActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Run Code Online (Sandbox Code Playgroud)
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/bt_speak"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Speak"
/>
<TextView
android:id="@+id/tv_result"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 他们说main()是一个像任何其他函数一样的函数,但是"标记"为二进制文件中的入口点,操作系统可能找到的入口点(不知道如何)并从那里启动程序.所以,我试图找到更多关于这个功能的信息.我做了什么?我在里面用这个代码创建了一个简单的.C文件:
int main(int argc, char **argv) {
return (0);
}
Run Code Online (Sandbox Code Playgroud)
我保存了文件,安装了GCC编译器(在Windows,MingW环境中)并创建了一个这样的批处理文件:
gcc -c test.c -nostartfiles -nodefaultlibs -nostdlib -nostdinc -o test.o
gcc -o test.exe -nostartfiles -nodefaultlibs -nostdlib -nostdinc -s -O2 test.o
@%comspec%
Run Code Online (Sandbox Code Playgroud)
我这样做是为了获得一个非常简单的编译器和链接器,没有库,没有头,只是编译器.所以,编译顺利,但链接停止与此错误:
test.c:(.text+0xa): undefined reference to '___main'
collect2.exe: error: Id returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我认为主要功能是由链接器导出的,但我相信你不需要任何有关它的附加信息的库.但看起来确实如此.在我的情况下,我认为它必须是标准的GCC库,所以我下载了它的源代码并打开了这个文件:libgcc2.c 现在,我不知道这是否是构造main函数的文件由GCC联系.事实上,我不明白GCC如何使用主要功能.为什么链接器需要gcc标准库?要知道主要的是什么?我希望这使我的问题非常具体和明确.谢谢!
这对你们来说可能很简单,但由于我是java的新手,所以我想知道下一部分究竟发生了什么?
if (args.length > 0) {
file = args[0];
}
public class DomTest1 {
public static void main(String[] args) {
String file = "test1.xml";
if (args.length > 0) {
file = args[0];
}
}
}
Run Code Online (Sandbox Code Playgroud) 考虑以下类.
public class Test {
public static void main(String[] args) {
System.out.println(args.length); // out put 0
System.out.println(Arrays.asList(args)); // out put []
}
}
Run Code Online (Sandbox Code Playgroud)
根据这个结果,我认为mainjava中的方法没有参数.如果我错了,请纠正我.如果它需要一些输入参数为什么我得到这个输出?
这是我的任务:
使用三个String参数编写一个名为greeting的静态void方法,该参数以下列格式格式化并打印标题,名字和姓氏并将其打印出来.
blank line
Dear title first name last name,
blank line
Run Code Online (Sandbox Code Playgroud)
到目前为止,我写了这段代码:
import java.io.*;
import java.util.Scanner;
public class GreetingLab {
public static void main(String[] args) throws IOException {
String title;
String firstName;
String lastName;
Scanner in;
in = new Scanner(System.in);
System.out.print("Enter a title:");
title = in.next();
System.out.print("Enter your first name:");
firstName = in.next();
System.out.print("Enter a your last name:");
lastName = in.next();
greeting(title,firstName,lastName);
}
private static void greeting (String ttl, String fName, String lName)
{
System.out.println();
System.out.println ("Dear "+ttl+" "+fName+" …Run Code Online (Sandbox Code Playgroud) 为什么我的程序不能找到我的主要课程?我认为你不需要其余的parse()函数来理解什么是错误的......让我知道
package help;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class help {
ArrayList<Character> StringList = new ArrayList<Character>();
static char[] data;
String val;
public void main(String[] args){
InputStreamReader ISR = new InputStreamReader (System.in);
BufferedReader BR = new BufferedReader(ISR);
try{
int sCurrentChar;
while ((sCurrentChar = BR.read()) != -1) {
parse((char) sCurrentChar);
}
} catch(IOException e){
e.printStackTrace();
}
}
public void parse(char x){
boolean done =false;
int state =0;
Run Code Online (Sandbox Code Playgroud) 在Java中,命令行参数作为String数组传递给我的程序,如下所示:
public static void main(String[] args ) { }
Run Code Online (Sandbox Code Playgroud)
为什么这会使用数组,而不是单个字符串?
我认为如果命令行参数作为单个String传入,它会更灵活/适应性,让我的程序用它做我想要的.使用String数组而不是单个String是否有任何设计优势?
我知道我需要一个main方法,但是main方法可以在Main类之外的其他类中吗?
我会试着解释一下我想做什么.我有程序(不起作用),它是从Windows中的CMD控制台调用的.我正在使用main函数的参数
int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)
但在这种情况下我不能使用调试器来找到我做错了什么...我能以某种方式将char*argv []参数连接到代码中创建的表吗?例:
int main(int argc, char *argv[])
{
char tablica[] = { 'K','2','+','1','-','3','*','(','3','+','2',')','*','2' };
tablica = **argv; //// IDK HOW TO CONNECT THESE TWO
Run Code Online (Sandbox Code Playgroud)