mirror of
https://github.com/sharkdp/bat.git
synced 2025-07-17 20:43:20 +01:00
.github
assets
diagnostics
doc
examples
src
tests
benchmarks
examples
mocked-pagers
scripts
snapshots
syntax-tests
highlighted
source
ARM Assembly
ASP
AWK
ActionScript
Apache
AppleScript
AsciiDoc
Assembly (x86_64)
Bash
BatTestCustomAssets
Batch
BibTeX
C
C-Sharp
CMake
CSS
CSV
Cabal
Clojure
CoffeeScript
Cpp
CpuInfo
Crystal
D
Dart
Diff
Dockerfile
DotENV
Elixir
Elm
Email
Erlang
EtcGroup
F#
Fish
Fortran (Fixed Form)
Fortran (Modern)
Fortran Namelist
Fstab
GLSL
Git Attributes
Git Config
Git Ignore
Go
GraphQL
Graphviz DOT
Groff
Groovy
HTML
Haskell
Hosts
INI
Ignored suffixes
JSON
Java
Java Server Page (JSP)
JavaScript
Jinja2
Julia
Kotlin
LLVM
Lean
Less
Lisp
Literate Haskell
LiveScript
Log
Lua
MATLAB
Makefile
Manpage
Markdown
MediaWiki
MemInfo
NAnt Build File
Ninja
OCaml
Objective-C
Objective-C++
PHP
Pascal
Passwd
Perl
Plaintext
PowerShell
Protocol Buffer
Puppet
PureScript
Python
QML
R
Racket
Rego
Regular Expression
Robot Framework
Ruby
Ruby Haml
Ruby On Rails
Rust
SCSS
SLS
SML
SQL
SSH Config
SSHD Config
Sass
Scala
Slim
Solidity
Strace
Stylus
Svelte
Swift
test.swift
Syslog
SystemVerilog
TOML
Tcl
TeX
Terraform
Textile
TypeScript
TypeScriptReact
Verilog
VimL
Vue
Vyper
XAML
XML
YAML
Zig
dash
gnuplot
http-request-response
jsonnet
nginx
nim
nix
orgmode
reStructuredText
resolv.conf
varlink
BatTestCustomAssets.sublime-syntax
compare_highlighted_versions.py
create_highlighted_versions.py
regression_test.sh
test_custom_assets.sh
update.sh
utils
.gitattributes
assets.rs
integration_tests.rs
no_duplicate_extensions.rs
snapshot_tests.rs
tester.rs
.gitignore
.gitmodules
CHANGELOG.md
CONTRIBUTING.md
Cargo.lock
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
NOTICE
README.md
build.rs
269 lines
8.0 KiB
Swift
Vendored
269 lines
8.0 KiB
Swift
Vendored
class Person {
|
|
// We can define class property here
|
|
var age = 25
|
|
// Implement Class initializer. Initializers are called when a new object of this class is created
|
|
init() {
|
|
print(“A new instance of this class Person is created.”)
|
|
}
|
|
}
|
|
// We can now create an instance of class Person - an object - by putting parentheses after the class name
|
|
let personObj = Person()
|
|
// Once an instance of Person class is created we can access its properties using the dot “.” syntax.
|
|
print(“This person age is \(personObj.age)”)
|
|
|
|
import Foundation
|
|
class Friend : Comparable {
|
|
let name : String
|
|
let age : Int
|
|
|
|
init(name : String, age: Int) {
|
|
self.name = name
|
|
self.age = age
|
|
}
|
|
}
|
|
func < (lhs: Friend, rhs: Friend) -> Bool {
|
|
return lhs.age < rhs.age }; func > (lhs: Friend, rhs: Friend) -> Bool {
|
|
return lhs.age > rhs.age
|
|
}
|
|
func == (lhs: Friend, rhs: Friend) -> Bool {
|
|
var returnValue = false
|
|
if (lhs.name == rhs.name) && (lhs.age == rhs.age)
|
|
{
|
|
returnValue = true
|
|
}
|
|
return returnValue
|
|
}
|
|
|
|
let friend1 = Friend(name: "Sergey", age: 35)
|
|
let friend2 = Friend(name: "Sergey", age: 30)
|
|
|
|
print("Compare Friend object. Same person? (friend1 == friend2)")
|
|
|
|
func sayHelloWorld() {
|
|
print("Hello World")
|
|
}
|
|
// Call function
|
|
sayHelloWorld()
|
|
|
|
func printOutFriendNames(names: String...) {
|
|
|
|
for name in names {
|
|
|
|
print(name)
|
|
}
|
|
|
|
}
|
|
// Call the printOutFriendNames with two parameters
|
|
printOutFriendNames("Sergey", "Bill")
|
|
// Call the function with more parameters
|
|
printOutFriendNames("Sergey", "Bill", "Max")
|
|
|
|
let simpleClosure = {
|
|
print("From a simpleClosure")
|
|
}
|
|
// Call closure
|
|
simpleClosure()
|
|
|
|
let fullName = { (firstName:String, lastName:String)->String in
|
|
return firstName + " " + lastName
|
|
}
|
|
// Call Closure
|
|
let myFullName = fullName("Sergey", "Kargopolov")
|
|
print("My full name is \(myFullName)")
|
|
|
|
let myDictionary = [String:String]()
|
|
// Another way to create an empty dictionary
|
|
let myDictionary2:[String:String] = [:]
|
|
// Keys in dictionary can also be of type Int
|
|
let myDictionary3 = [Int:String]()
|
|
|
|
var myDictionary = ["first_name": "Sergey", "last_name": "Kargopolov"]
|
|
// print to preview
|
|
print(myDictionary)
|
|
// Add a new key with a value
|
|
myDictionary["user_id"] = "f5h7ru0tJurY8f7g5s6fd"
|
|
// We should now have 3 key value pairs printed
|
|
print(myDictionary)
|
|
|
|
var myDictionary = ["first_name": "Sergey", "last_name": "Kargopolov"]
|
|
// Loop through dictionary keys and print values
|
|
for (key,value) in myDictionary {
|
|
print("\(key) = \(value)")
|
|
}
|
|
class Friend {
|
|
let name : String
|
|
let age : Int
|
|
|
|
init(name : String, age: Int) {
|
|
self.name = name
|
|
self.age = age
|
|
}
|
|
}
|
|
|
|
var friends:[Friend] = []
|
|
|
|
let friend1 = Friend(name: "Sergey", age: 30)
|
|
let friend2 = Friend(name: "Bill", age: 35)
|
|
let friend3 = Friend(name: "Michael", age: 21)
|
|
|
|
friends.append(friend1)
|
|
friends.append(friend2)
|
|
friends.append(friend3)
|
|
|
|
printFriends(friends: friends)
|
|
|
|
// Get sorted array in descending order (largest to the smallest number)
|
|
let sortedFriends = friends.sorted(by: { $0.age > $1.age })
|
|
printFriends(friends: sortedFriends)
|
|
|
|
// Get sorted array in ascending order (smallest to the largest number)
|
|
let sortedFriendsAscendingOrder = friends.sorted(by: { $0.age < $1.age })
|
|
printFriends(friends: sortedFriendsAscendingOrder)
|
|
|
|
|
|
func printFriends(friends: [Friend])
|
|
{
|
|
for friendEntry in friends {
|
|
print("Name: \(friendEntry.name), age: \(friendEntry.age)")
|
|
}
|
|
}
|
|
|
|
import UIKit
|
|
class ViewController: UIViewController {
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
}
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
|
|
// Create destination URL
|
|
let documentsUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
|
|
let destinationFileUrl = documentsUrl.appendingPathComponent("downloadedFile.jpg")
|
|
|
|
//Create URL to the source file you want to download
|
|
let fileURL = URL(string: "https://s3.amazonaws.com/learn-swift/IMG_0001.JPG")
|
|
|
|
let sessionConfig = URLSessionConfiguration.default
|
|
let session = URLSession(configuration: sessionConfig)
|
|
|
|
let request = URLRequest(url:fileURL!)
|
|
|
|
let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
|
|
if let tempLocalUrl = tempLocalUrl, error == nil {
|
|
// Success
|
|
if let statusCode = (response as? HTTPURLResponse)?.statusCode {
|
|
print("Successfully downloaded. Status code: \(statusCode)")
|
|
}
|
|
|
|
do {
|
|
try FileManager.default.copyItem(at: tempLocalUrl, to: destinationFileUrl)
|
|
} catch (let writeError) {
|
|
print("Error creating a file \(destinationFileUrl) : \(writeError)")
|
|
}
|
|
|
|
} else {
|
|
print("Error took place while downloading a file. Error description: %@", error?.localizedDescription);
|
|
}
|
|
}
|
|
task.resume()
|
|
|
|
}
|
|
}
|
|
|
|
do {
|
|
|
|
// Convert JSON Object received from server side into Swift NSArray.
|
|
// Note the use "try"
|
|
if let convertedJsonIntoArray = try JSONSerialization.JSONObjectWithData(data!, options: []) as? NSArray {
|
|
}
|
|
|
|
} catch let error as NSError {
|
|
print(error.localizedDescription)
|
|
}
|
|
|
|
DispatchQueue.global(qos: .userInitiated).async {
|
|
// Do some time consuming task in this background thread
|
|
// Mobile app will remain to be responsive to user actions
|
|
|
|
print("Performing time consuming task in this background thread")
|
|
|
|
DispatchQueue.main.async {
|
|
// Task consuming task has completed
|
|
// Update UI from this block of code
|
|
print("Time consuming task has completed. From here we are allowed to update user interface.")
|
|
}
|
|
}
|
|
|
|
import UIKit
|
|
class ViewController: UIViewController {
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
// Do any additional setup after loading the view, typically from a nib.
|
|
|
|
let button = UIButton(type: UIButtonType.system) as UIButton
|
|
|
|
let xPostion:CGFloat = 50
|
|
let yPostion:CGFloat = 100
|
|
let buttonWidth:CGFloat = 150
|
|
let buttonHeight:CGFloat = 45
|
|
|
|
button.frame = CGRect(x:xPostion, y:yPostion, width:buttonWidth, height:buttonHeight)
|
|
|
|
button.backgroundColor = UIColor.lightGray
|
|
button.setTitle("Tap me", for: UIControlState.normal)
|
|
button.tintColor = UIColor.black
|
|
button.addTarget(self, action: #selector(ViewController.buttonAction(_:)), for: .touchUpInside)
|
|
|
|
self.view.addSubview(button)
|
|
}
|
|
|
|
func buttonAction(_ sender:UIButton!)
|
|
{
|
|
print("Button tapped")
|
|
}
|
|
|
|
override func didReceiveMemoryWarning() {
|
|
super.didReceiveMemoryWarning()
|
|
// Dispose of any resources that can be recreated.
|
|
}
|
|
|
|
|
|
}
|
|
|
|
import UIKit
|
|
class ViewController: UIViewController {
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
//Create Activity Indicator
|
|
let myActivityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
|
|
|
|
// Position Activity Indicator in the center of the main view
|
|
myActivityIndicator.center = view.center
|
|
|
|
// If needed, you can prevent Acivity Indicator from hiding when stopAnimating() is called
|
|
myActivityIndicator.hidesWhenStopped = false
|
|
|
|
// Start Activity Indicator
|
|
myActivityIndicator.startAnimating()
|
|
|
|
// Call stopAnimating() when need to stop activity indicator
|
|
//myActivityIndicator.stopAnimating()
|
|
|
|
|
|
view.addSubview(myActivityIndicator)
|
|
}
|
|
|
|
override func didReceiveMemoryWarning() {
|
|
super.didReceiveMemoryWarning()
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|