Ir aprendizaje de idiomas (C): Archivo de origen

archivos de código fuente de lenguaje de comandos de movimiento incluyen archivos de origen, bibliotecas, archivos fuente y los archivos de código fuente de prueba.

       Los archivos de origen es el programa de entrada de comando ejecutado, que pertenece al paquete principal, que no contiene parámetros libres principal función devuelve un resultado, con java similares, no se recomienda el mismo paquete para almacenar una pluralidad de las siguientes funciones principales. archivos de origen comando para generar un archivo ejecutable compilado o instalado, la presencia del directorio actual ejecutar el comando.

        archivos de código fuente de biblioteca usados ​​para almacenar otros programas para el uso del código de entidad, una compilación comprobada y verificada, generan archivos temporales, archivos de archivos generados durante la instalación, directorio PKG tienda en el espacio de trabajo actual.

        La prueba principal archivo de código fuente de prueba almacenados los documentos pertinentes de origen, incluyendo pruebas funcionales, pruebas de rendimiento, y así ejecutar el programa de ejemplo.

La siguiente charla sobre los detalles comando archivos de código fuente y los archivos fuente de la biblioteca:

1. Fuente de órdenes archivo

1) Código 1

Como el código, llevamos a cabo las operaciones se ejecutan en el IDE, o la línea de comandos que corra Demo1.go

2) cómo el comando de archivo de origen acepta parámetros? FLA ir lengua del paquete de código dedicada a recibir y analizar los parámetros de línea de comandos, como los siguientes códigos:

package main

import (
	"flag"
	"fmt"
)

var name string

func init(){
	flag.StringVar(&name, "name", "everyone", "The greeting object.")
}
func main() {
	flag.Parse()
	fmt.Printf("hollo, %s!\n", name)
}


El código anterior, flag.StringVar hay cuatro parámetros, a saber, dirección de argumentos de línea de comando, la línea de comandos nombre del parámetro, el valor predeterminado de una descripción de los parámetros de salida, que debe ser resuelto antes de que los argumentos de línea de comando, como se describe anteriormente flag.parse

3) parámetros personalizables comandos de los archivos de origen para su uso

package main

import (
	"flag"
	"fmt"
	"os"
)

var name string

func init(){
	flag.StringVar(&name, "name", "everyone", "The greeting object.")
}
func main() {
	flag.CommandLine.Usage = func() {
		fmt.Fprintf(os.Stderr, "Usage of %s:\n", "question")
		flag.PrintDefaults()
	}
	flag.Parse()
	fmt.Printf("hollo, %s!\n", name)
}


El tipo anterior en el que PanicOnError, un total de tres clases de tipos de error, véase más adelante Fuente Definición:

const (
  ContinueOnError ErrorHandling = iota // Return a descriptive error.
  ExitOnError                          // Call os.Exit(2).
  PanicOnError                         // Call panic with a descriptive error.
)

Ejecutar los comandos y los resultados se muestran a continuación:

4) un recipiente parámetro de comando personalizado puede ser más flexible definir los parámetros de línea de comando

package main

import (
	"flag"
	"fmt"
	"os"
)

var name string

var cmdLine = flag.NewFlagSet("question", flag.ExitOnError)
func init(){
	cmdLine.StringVar(&name, "name", "everyone", "The greeting object.")
}
func main() {
	cmdLine.Parse(os.Args[1:])
	fmt.Printf("hollo, %s!\n", name)
}


2. archivo de origen del Tesoro

Tesoro archivo de origen es un archivo no se puede ejecutar directamente, sólo puede ser usado por otros programas. ir idioma, si el archivo actual si desea utilizar la declaración de función en un archivo, es necesario seguir los siguientes archivos en el mismo paquete.

Véase más abajo 2 del código:

//Demo6.go

package main
import "fmt"
//定义方法
func printHello(name string) {
  fmt.Printf("Hello, %s!\n", name)
}
//Demo5.go
package main

import (
  "flag"
  "os"
)

var name string

var cmdLine = flag.NewFlagSet("question", flag.ExitOnError)
func init(){
  cmdLine.StringVar(&name, "name", "everyone", "The greeting object.")
}
func main() {
  cmdLine.Parse(os.Args[1:])
  printHello(name)
}

Ejecute el siguiente comando:

Tenga en cuenta que el comando anterior se ejecuta Demo5 y Demo6. Otra forma es poner dos archivos en un paquete, la implementación del compilador. estructura de directorios es la siguiente:

En la línea de comandos Va la estructura demo1, producirá demo1.exe archivo y ejecute el archivo ejecutable, salida:, como se muestra a continuación "Hola a todos!":

   

nota:

a) mygolang directorio de trabajo debe estar configurado para GOPATH variable de entorno, de lo contrario, se informará al lado error de mapa;

b) siguiendo los mismos archivos de origen del paquete de declarar el mismo paquete de código. Si el paquete a continuación los archivos fuente de comandos, que otros tipos de archivos de origen debe ser declarado como su grupo principal.

c) una declaración de los archivos del paquete de código fuente no puede el mismo directorio, pero si se genera un paquete de código, lo que resulta en el mismo paquete con el nombre en clave. Como ejemplos de lo anterior

Configuración de variables de entorno:

d) Si la estructura de directorios paquete modificado, como se muestra a continuación:

//Demo6.go
package lib

import "fmt"

//定义方法
func PrintHello(name string) {
  fmt.Printf("Print Hello, %s!\n", name)
}
//Demo5.go
package main

import (
  "demo2/lib"
  "flag"
  "os"
)

var name string

var cmdLine = flag.NewFlagSet("question", flag.ExitOnError)
func init(){
  cmdLine.StringVar(&name, "name", "everyone", "The greeting object.")
}
func main() {
  cmdLine.Parse(os.Args[1:])
  lib.PrintHello(name)
}

En este caso, Demo5.go confiar archivo Demo6.go, es necesario instalar sobre el paquete de lib, ir instalar demo2 \ lib

Esta vez va a generar un fichero de archivo, a continuación, compilar y ejecutar

e) en las entidades programa Demo6.go anteriores a la capital para que se pueda hacer referencia desde fuera del paquete, si es minúscula, el programa se puede hacer referencia en el paquete.

f) ir a diferentes sentencia de paquete soporte de idiomas y el directorio, pero con el fin de hacer el código más claro y menos malentendido, se recomienda que los dos nombres siguen siendo los mismos

g) una declaración de paquete de código interno en un módulo, sólo se puede hacer uso del paquete de código actual, incluyendo el paquete matriz directa y el paquete de código interno paquete secundario, otros paquetes no son compatibles con las referencias de código del módulo.

 

Dirección Código: https: //github.com/jinjunzhu/mygolang.git

Publicado 33 artículos originales · ganado elogios 2 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/zjj2006/article/details/104925763
Recomendado
Clasificación