Skip to content

Instantly share code, notes, and snippets.

View st-small's full-sized avatar

Stanislav Shiyanovskiy st-small

  • Kirovohrad, Ukraine
View GitHub Profile
list = [9, 6, 7, 3, 42, 2, 78, 4, 5, 67, 98, 1]
func quickSort2 <T: Comparable> (_ list: [T]) -> [T] {
if list.count == 0 {
return []
}
let pivot = list[0]
let sublist = list.count > 1 ? list[1..<list.count] : []
func checkPhoneNumber(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let validationSet = NSCharacterSet.decimalDigits.inverted
let components = string.components(separatedBy: validationSet)
guard components.count == 1 else { return false }
guard var newString = (textField.text as NSString?)?.replacingCharacters(in: range, with: string) else { return false }
let validComponents = newString.components(separatedBy: validationSet)
@st-small
st-small / gist:310e256237e8e157f407aeb90c0ab252
Last active July 14, 2018 17:15
small example to make the reflection in Swift 4.0
import UIKit
public class Human: NSObject {
@objc dynamic public var firstName = "*****"
@objc dynamic public var lastName = "*****"
@objc dynamic public var age = 0
@objc dynamic public var hobby = "*****"
@objc dynamic public var university = "*****"
@objc dynamic public var sportLeague = "*****"
private func randomColor() -> UIColor {
return UIColor(red: CGFloat(arc4random()) / CGFloat(UInt32.max),
green: CGFloat(arc4random()) / CGFloat(UInt32.max),
blue: CGFloat(arc4random()) / CGFloat(UInt32.max),
alpha: 1.0)
}
import UIKit
// *********************************
// ************** MAP **************
// *********************************
// Классический вариант
func lengthOf(strings: [String]) -> [Int] {
var result = [Int]()
for string in strings {
protocol Payable {
func calculateWages() -> Int
}
extension Payable {
func calculateWages() -> Int {
return 10000
}
}
func sendToSlack() {
let slackUrl = ""
guard let url = URL(string: slackUrl) else {
print("Error: cannot create URL")
return
}
guard let position = lastPosition else {
@st-small
st-small / Print device token
Created November 7, 2018 13:04
Print device token
let tokenParts = deviceToken.map { data -> String in
return String(format: "%02.2hhx", data)
}
let token = tokenParts.joined()
print("Device Token: \(token)")
@st-small
st-small / BinarySearch
Created February 19, 2019 15:38
BinarySearch
import Foundation
// Binary search using simple function
func binSearch (list: [Int], value: Int) -> Int?{
if !list.isEmpty{
var indexMin = list.startIndex
var indexMax = list.endIndex-1
while indexMin <= indexMax{
@st-small
st-small / Phantom types
Last active April 10, 2019 12:11
Phantom types
import UIKit
protocol Currency {
static var code: String { get }
static var factor: NSDecimalNumber { get }
}
enum USD: Currency {
static let code = "USD"
static let factor: NSDecimalNumber = 1.0
}