File Imports are a language feature.
Many (most?) languages allow you to split code into different files and import the code from one file into a different file.
Languages without File Imports include HTML, JSON
Languages with File Imports include Java, JavaScript, C, Python, C++, PHP, Ruby, R, Go, Perl, C#, MATLAB, Swift, Rust, Haskell, CSS, TypeScript, Objective-C, Clojure, Erlang, Kotlin, Julia, Elixir, Dart, F#, Bash, Crystal, Racket, Node.js, Ballerina, X10, Flow9, Xtext
import javax.swing.*;
import javax.swing.JOptionPane;
// use fully qualified name without import:
javax.swing.JOptionPane.showMessageDialog(null, "Hi");
// There are 166 packages containing 3279 classes and interfaces in Java 5.
// import java.io.*; Input-output classes.
import { helloWorld } from "./helloWorld.js";
// If a header file is included within <>, the preprocessor will search a predetermined directory path to locate the header file. If the header file is enclosed in "", the preprocessor will look for the header file in the same directory as the source file.
#include <stdio.h>
#include "stdio.h"
import datetime
oTime = datetime.datetime.now()
from my_pkg import my_funcs
#include <iostream>
<?php
include 'vars.php';
require 'filename'; // FATAL error if fails
load 'filename.rb'
require 'filename'
require 'trig.rb'
source("filename.r")
import (
"fmt"
"math"
)
import . "fmt"
import _ "io"
import log "github.com/foo/bar"
import m "math"
use Digest::MD5 'md5_hex';
using static System.Console;
using static System.Math;
class Program
{
static void Main()
{
WriteLine(Sqrt(3*3 + 4*4));
}
}
import pkg.cls1
import pkg.pkfcn
import UIKit
import UIKit.UITableViewController
let tvc = UITableViewController()
let vc = UIViewController()
let label = UILabel()
use ::std::fs; // Imports from the `std` crate, not the module below.
use self::std::fs as self_fs; // Imports the module below.
mod my;
use self::foo::Zoo as _;
#[path = "foo.rs"]
mod c;
import Data.Maybe
import Mod as Foo
import Mod (x,y, (+++))
import qualified Mod
import Mod hiding (x,y,(+++))
import qualified Mod hiding (x,y)
@import 'custom.css';
import { ZipCodeValidator } from "./ZipCodeValidator";
/// <reference path="../typings/jquery.d.ts"/>
/// <reference path="components/someclass.ts"/>
import moo = module('moo');
/// <amd-dependency path="legacy/moduleA" name="moduleA"/>
// #import ensures that a file is only ever included once so that you never have a problem with recursive includes.
#import <Foundation/Foundation.h>
#include <asl.h>
#include <mach/mach.h>
(load "fun")
(load "files/fun")
(load-file "./files/fun.clj")
(defproject project-a
:dependencies [[org.clojure/clojure "1.5.1"]
[project-b "0.1.0"]])
(require '[clojure.string :as string])
(use '[clojure.string :only [split]])
(import 'java.util.Date)
(java.util.Date.)
(require 'clojure.contrib.def 'clojure.contrib.except 'clojure.contrib.sql)
(require '(clojure.contrib def except sql))
-include("my_records.hrl").
-include("incdir/my_records.hrl").
-include("/home/user/proj/my_records.hrl").
-include("$PROJ_ROOT/my_records.hrl").
-include_lib("kernel/include/file.hrl").
import foo.Bar // Bar is now accessible without qualification
import foo.* // everything in 'foo' becomes accessible
import bar.Bar as bBar // bBar stands for 'bar.Bar'
# Files and file names are mostly unrelated to modules; modules are associated only with module expressions.
# One can have multiple files per module, and multiple modules per file:
using MyModule
using MyModule: x, p
import MyModule
import MyModule.x, MyModule.p
import MyModule: x, p
module Foo
include("file1.jl")
include("file2.jl")
end
# Alias the module so it can be called as Bar instead of Foo.Bar
alias Foo.Bar, as: Bar
# Require the module in order to use its macros
require Foo
# Import functions from Foo so they can be called without the `Foo.` prefix
import Foo
# Invokes the custom code defined in Foo as an extension point
use Foo
import 'file-system.dart';
import 'dart:math' as math;
open module-or-namespace-name
open System.IO
open List
open Seq
source ./bash.sh
require "../../spec_helper"
(require (prefix-in tcp: racket/tcp))
const jtree = require("jtree")
import ballerina/http;
import ballerina/io;
import x10.io.Console;
import runtime;
import "http://www.xtext.org/example/Domainmodel"
import "http://www.xtext.org/example/Domainmodel" as dmodel